- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dateigröße eines PDF aus PDF-Kanal
Hallo,
ich würde gerne neben dem Link zum Download des PDF einer Seite (generiert über PDF-Kanal) die Dateigröße der Zieldatei ausgeben. Über die Access-API habe ich leider keine Möglichkeit finden können. FirstSpirit Version: 4.2.437.44763
Vielen Dank und viele Grüße
Michael Krohmann
- Labels:
-
Developers
-
Knowledgebase
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
In der Regel wird der HTML-Kanal vor dem PDF-Kanal erzeugt, so dass die Dateigröße der PDFs in diesem Fall zum Generierungszeitpunkt noch nicht bekannt ist. Eine einfache Lösung des Problems existiert leider nicht, bzw. nur für PDFs die im Mediastore liegen - was hier ja leider nicht der Fall ist.
In Ihrem Fall würde man wahrscheinlich zwei getrennte Generierungen durchführen, einmal den PDF Kanal und immer danach den HTML Kanal, so dass sichergestellt ist, dass die PDFs bereits generiert wurden.
Dadurch ist es dann möglich in den Templates des HTML-Kanals inline oder mit Script die Dateigrößen der PDFs zu ermitteln.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Das kannste doch einfach per Java lösen:
File file = new File(pathToFile);
// Get the number of bytes in the file
long size = file.length();
Dann noch ein wenig aufhübschen (hier nicht schön, aber es geht):
DecimalFormat decFormatter = new DecimalFormat("####");
if (size >= 1073741824)
{
return decFormatter.format(java.lang.Math.round(size / 1024f / 1024 / 1024 * 100) / 100) + " GB";
}
else if (size >= 1048576)
{
return decFormatter.format(java.lang.Math.round(size / 1024f / 1024 * 100) / 100) + " MB";
}
else if (size >= 1024)
{
return decFormatter.format(java.lang.Math.round(size / 1024f * 100) / 100) + " kB";
}
else if (size == 1)
{
return decFormatter.format(java.lang.Math.round(size * 100) / 100) + " Byte";
}
else if (size > 0 && size < 1024)
{
return decFormatter.format(java.lang.Math.round(size * 100) / 100) + " Bytes";
}
else
{
return "0 Bytes";
}
Grüße
Marcus
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Danke für Deine Antwort!
Kann ich das denn auch zum Zeitpunkt der Generierung? Die ausgelieferte Seite ist eine reine HTML-Seite, also keine Dynamik per Java möglich.
Grüße
Michael
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Vielleicht geht das über nen Beanshell-Script? Erst den pdf-Kanal generieren lassen, dann ist das pdf ja schon mal da. Und dann dieses im Script einlesen mit der obigen Methode.
Ist nur ne Idee. Keine Ahnung, ob es geht. Gibt bestimmt was noch viel einfacheres...
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
In der Regel wird der HTML-Kanal vor dem PDF-Kanal erzeugt, so dass die Dateigröße der PDFs in diesem Fall zum Generierungszeitpunkt noch nicht bekannt ist. Eine einfache Lösung des Problems existiert leider nicht, bzw. nur für PDFs die im Mediastore liegen - was hier ja leider nicht der Fall ist.
In Ihrem Fall würde man wahrscheinlich zwei getrennte Generierungen durchführen, einmal den PDF Kanal und immer danach den HTML Kanal, so dass sichergestellt ist, dass die PDFs bereits generiert wurden.
Dadurch ist es dann möglich in den Templates des HTML-Kanals inline oder mit Script die Dateigrößen der PDFs zu ermitteln.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Genau das war mein Vorschlag in dem Beitrag darüber! Prima, dann geht das ja doch!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Perfekt, vielen Dank!
Grüße
Michael

