PDF Papiergröße feststellen [Erledigt]

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

PDF Papiergröße feststellen [Erledigt]

Beitrag von Jan »

Ich stehe vor dem Problem, das ich eine PDF ausdrucken muß. Das Drucken ansich ist dabei nicht das Problem, das klappt einwandfrei. Aber ich muß abhängig von der Papiergröße den richtigen Drucker ansprechen. Wie also kann ich aus einer bestehenden PDF diese Angaben auslesen? Aus einem Xbase++-Programm heraus?

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: PDF Papiergröße feststellen

Beitrag von Martin Altmann »

Hast Du Dir mal eine PDF-Datei in einem Editor angeschaut?
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: PDF Papiergröße feststellen

Beitrag von Jan »

Hallo Martin,

ja. Und dann ganz schnell wieder zu gemacht ... :-D

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: PDF Papiergröße feststellen

Beitrag von Martin Altmann »

Ich "muss" jetzt leider gleich zu unserer Weihnachtsfeier - vielleicht hilft Dir das ja ein wenig weiter:
http://en.wikipedia.org/wiki/Portable_Document_Format

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: PDF Papiergröße feststellen

Beitrag von Martin Altmann »

Du findest irgendwo in Deinem PDF unter anderem sowas:

Code: Alles auswählen

/Type/Page/MediaBox [0 0 595 842]
Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: PDF Papiergröße feststellen

Beitrag von Jan »

OK, da Martin sowas ja nicht ohne Grund fragt :-D habe ich mir die noch einmal angesehen. Es ist richtig, das nirgends die Papiergröße eingetragen wird. Und der String "size" kommt 3x in der PDF vor. Ich habe dann mal Tante Google nach den Kennworten davor geknechtet, und dann festgestellt, das die beiden ersten hilfreich sind. Die geben zwar die Größe in Pixeln an, aber das hilft mir ja schon sehr weiter.

Ich lese also per FRead() die ersten 500 Zeichen ein, suche mir die Strings "MediaSize" oder "CropSize" (in meinem Fall wäre beides richtig, das muß aber nicht sein), und lese dann den Wert dahinter aus. Ich brauch das nicht pixelgenau, aber der Wert gibt mir schon eine Richtung auf die drei benötigten Größen A4, A5quer, und 10x15 cm.

Also: Problem gelöst. Vielleicht nicht sonderlich elegant. Aber einfach und schnell.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Antworten