Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Pdf in einzelne Seiten als Bilder zerlegen (https://www.delphipraxis.net/205030-pdf-einzelne-seiten-als-bilder-zerlegen.html)

stahli 24. Jul 2020 21:54

Pdf in einzelne Seiten als Bilder zerlegen
 
Ich bekomme gescannte Pdf´s, die ich aufarbeiten muss.

Da gibt es unterschiedliche Dokumente, die einseitig oder mehrseitig gescannt sein können.
In einer Pdf können mehrere Dokumente enthalten sein, die wieder getrennt werden müssen.
Es können Leerseiten enthalten sein und auch die Reihenfolge kann durcheinander sein.

Da die PDF´s ohnehin nur Bitmaps je Seite enthalten möchte ich einfach diese Bitmaps extrahieren
Page1.bmp, Page2.bmp...
und diese weiter verarbeiten (das ginge auch über SeiteInBitmapDrucken(Nr) oder so).

Leerseiten können dann leicht gelöscht und die übrigen Seiten neu zusammengestellt werden.
So können aus den 10 Chaos-Seiten z.B. 3 ordentliche Dokumente zusammengestellt werden.

Die drei Dokumente sollen dann wieder als PDF´s gespeichert (gedruckt) werden.

Diese Umwandlungen können problemlos über das Filesystem laufen (SaveAs()).


Weiß jemand, wie man das am besten angehen könnte?
Teure Tools passen nicht für mich.

Ich will mir mal den Sumatra Viewer anschauen.
Vielleicht hat ja dennoch schon mal jemand einen Tipp für mich...

himitsu 24. Jul 2020 22:34

AW: Pdf in einzelne Seiten als Bilder zerlegen
 
Es gibt Delphi-Komponenten (z.B. DevExpress oder ImageEn) und auch ActiveX-Komponenten und Dergleichen,
da kannst im Delphi eine PDF drucken, in Bitmaps exportieren, von Bitmaps importieren, Seiten/Teile bearbeiten/einfügen/löschen und wieder speichern.
Auch Fast Report kann PDFs erstellen.
(die kosten aber oft ä bissl was)

Dann gibt es bestimmt garantiert auch Consolen-Tools, denen man sagen kann "hier hast Bilder, mach PDF draus" oder "hier hast PDF, mach Bilder daraus". (Bei Google suchengoogle)

Es gibt auch für alles Mögliche virtuelle Drucker.
* irgendeinem PDF-Programm sagen "drucke PDF" und wählst einen Drucker der als Bild(er) speichert
** Acrobat und Foxit lassen sich via OCX oder über Parameter aufrufen und automatisch drucken
* und dann druckste (mit fremden Programm oder TPrinter) die Bilder über einen Drucker, der als PDF speichert.

Über ShellExecute Operation=PRINT und File=deine Datei kannst zwar oft mit "irgendeinem" Standardprogramm drucken, aber dort kann man nicht sagen welcher Drucker es werden soll. (wird hoffentlich der Standarddrucker benutzt)
Drum ist es dann immer besser, wenn man das "gewünschte" Programm startet und muß hoffen, dass man es via Parameter starten und gezielt drucken lassen kann.


Über WLS kannst jetzt im Windows auch viele der kostenlosen Linux-Tools benutzen, falls dir keines der Windows-Consolen-Tools gefällt.



Bei ImageEn und DevExpress könnte ich helfen (haben wir schon bissl was mit gemacht)
und für Adobe/Foxit kann ich schnell mal die Parameter/Schnittstellen raussuchen (falls du in Google nicht fündig werden möchtest)

Dalai 25. Jul 2020 07:17

AW: Pdf in einzelne Seiten als Bilder zerlegen
 
Wir haben in der Firma eine ähnliche Vorgabe, aus PDFs automatisiert Leerseiten zu entfernen. Wir benutzen dafür PdfTk (bei uns auf Linux, aber das gibt's auch für Windows).
Code:
pdftk "$1" burst output "${pfad}/pg_%04d.pdf"
find "${pfad}" -iname 'pg_*.pdf' -size -8000c -delete
pdftk "${pfad}"/pg_*.pdf cat output "$1" compress
Erste Zeile: Zerlegen in Einzelseiten. Das %04d gibt dabei eine vierstellige Zahl mit führender Null an (damit genügend Platz ist für bis zu 9999 Seiten ;)).
Zweite Zeile: Finden und Löschen von Leerseiten (maximal 8000 Bytes). Für Windows müsste man sich einen anderen Befehl suchen (for-Schleife bietet sich an, da es dort Parameter für die Größe gibt).
Dritte Zeile: Einzelseiten wieder zu einem PDF zusammenbauen.

Wenn du es von Hand machen kannst oder willst: Mit PDF-XChange Viewer kann man jedes PDF in verschiedene Grafikformate exportieren lassen (Datei > Export > Als Bild).

Grüße
Dalai

stahli 25. Jul 2020 07:22

AW: Pdf in einzelne Seiten als Bilder zerlegen
 
Danke schon mal an Euch!

Ich schaue mir gerade SynPdf an.
Scheint vielversprechend zu sein. :-)

Melde mich wieder...

Bernhard Geyer 25. Jul 2020 07:56

AW: Pdf in einzelne Seiten als Bilder zerlegen
 
Schau dir auch mal die PDF-Box an
https://pdfbox.apache.org/2.0/commandline.html

stahli 25. Jul 2020 10:25

AW: Pdf in einzelne Seiten als Bilder zerlegen
 
Ich habe es jetzt mit PdfiumLib gelöst.
Funktioniert wunderbar. :-) -> https://youtu.be/89sAKxQ7fvU

Die Lizenzbedingen muss ich noch versuchen, zu verstehen... :gruebel:

himitsu 25. Jul 2020 11:16

AW: Pdf in einzelne Seiten als Bilder zerlegen
 
Schau auch mal in welchem Format deine PDF gespeichert wird, bzw. ob du das irgendwie vorgeben kannst.

PDF/A wäre da vermutlich passend.
https://de.wikipedia.org/wiki/PDF/A
Da wird sich im PDF nur noch auf gewisse standardisierte Dinge beschränkt und auf externe/veränderliche Sachen verzichtet, welche in Zukunft im PDF-Reader fehlen könnten.

Außerdem kann man z.B. als XML oder CSV Zusatzinfos standardisiert in der PDF speichern.
Ist zwar jetzt hier nicht ganz so interessant, wobei da eventuell deine TAGs reinpassen würden.
Speziell ist es dafür gedacht, dass wenn du z.B. eine Rechnung als PDF druckst, die "Rohdaten" nochmal in maschinenlesbarer Form im PDF liegen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:59 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz