mkrohmann
I'm new here

Dateigröße eines PDF aus PDF-Kanal

Jump to solution

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

0 Kudos
1 Solution

Accepted Solutions

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.

View solution in original post

0 Kudos
6 Replies
MarcusDau
Occasional Collector

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

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

0 Kudos
MarcusDau
Occasional Collector

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...

0 Kudos

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.

0 Kudos
MarcusDau
Occasional Collector

     Genau das war mein Vorschlag in dem Beitrag darüber! Prima, dann geht das ja doch!

0 Kudos

Perfekt, vielen Dank!

Grüße

Michael

0 Kudos