Dirty hack zur pdf Manipulation

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

aifritz
Posts: 8
Joined: 29 Jul 2018, 11:30

Dirty hack zur pdf Manipulation

Post by aifritz » 18 Sep 2018, 12:27

Hallo zusammen,

ich würde gerne in pdf-Dateien, so wie hier beschrieben https://stackoverflow.com/questions/618 ... ript-9-01, den Text /CropBox um wandeln in z.B. /cROPBoX. Allerdings nicht von Hand per Editor, sondern mit Autohotkey.
To be more specific: it will not work for PDFs which come along with their own /CropBox already defined to specific values. A dirty hack around that is to change the string /CropBox for all pages where it is desired to /cROPBoX (or similar case-changing) with a text editor prior to running the above GS command. The case-change effectively "disarms" the cropbox setting (without changing any PDF object offsets invalidating the existing xref table) so it is no longer considered by PDF renderers.
Ich dachte in etwa so:

Code: Select all

       VarSetCapacity(ThePdfText, -1 )
       FileRead, ThePdfText, MeinepdfDatei.pdf
       StringReplace, ThePdfText, ThePdfText, /CropBox, /cROPBoX, All
       FileDelete, MeinepdfDatei.pdf
       FileAppend, %ThePdfText%, MeinepdfDatei.pdf
       ThePdfText := ""
Problem ist allerdings, dass die pdf-Datei danach nicht mehr lesbar ist. Mache ich es so wie beschrieben über z.B. Notepad++ funktioniert es.
(Probiere ich das gleiche über PSPad, lässt sich die Datei komischerweise nicht als pdf speichern)

Hat jemand eine Idee, wie das per ahk klappen könnte?
User avatar
nnnik
Posts: 3330
Joined: 30 Sep 2013, 01:01
Location: Germany

Re: Dirty hack zur pdf Manipulation

Post by nnnik » 18 Sep 2018, 13:23

Das Problem ist, dass du mit Strings arbeitest:

Eine PDF Datei ist ein Dateiformat welches viele Daten enthält - unter anderem auch Text.
Diese anderen Daten können Bilder, Markierungen, Einstellungen oder alles Mögliche sein.
Du liest die Daten dann als Text in AHK ein, ersetzt ein Teil des Textes aus der Datei und speicherst den resultierenden Text ab.

Texte werden intern als sogenannte Strings verarbeitet. Strings sind aneinandergehängte Nummern welche eine gewisse Bedeutung haben.
Je nachdem welche Stringkodierung gewählt wird haben diese Nummern andere Bedeutungen und unterschiedliche Effekte.
Die meisten Stringenkodierungen haben gemein, dass eine 0 bedeutet, dass sie zu Ende sind.
Zumindest die in AHK verwendeten ANSI und UTF-16 Kodierungen sind so.

Deine anderen PDF Daten können eine 0 enthalten. Daraufhin wird AutoHotkey da aufhören den String zu lesen - weil das ist das Ende des Textes.
Zudem weißt du nicht ob der Text in der selben Enkodierung gespeichert ist wie AHK ihn erwartet.

Wenn du diese Daten direkt mit AHK bearbeiten willst musst du wohl auf binäre Funktionen wie NumGet/NumPut zurück greifen oder ein FileObject verwenden.
Recommends AHK Studio
Ahk_fan
Posts: 14
Joined: 31 Aug 2018, 14:34

Re: Dirty hack zur pdf Manipulation

Post by Ahk_fan » 18 Sep 2018, 15:06

Hallo,

wie schon nnnik beschrieben hat ist eine PDF eine sehr einfache bis sehr komplexe Angelegenheit. Beispielsweise werden je nach PDF-Format Teile des Schriftsatzes weggelassen und umkodiert um z.B. Platz zu sparen.

Wenn du mehr über PDFs lernen willst gibt es hier viel Infos:
- Die PDF & Postscripbibel von Thomas Merz und Olaf Drümmer
- PDF Reference v1.6 von Adobe

Ich habe folgendermaßen mit AHK mir beholfen bei Maßenänderungen (alles Open Source), dazu muss die PDF aber in einem unkodierten Zustand sein:
- dekompremieren von PDF mit PDFTK (pdf Toolkit, https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/) als Commandlinetool, dazu braucht man nur die pdftk.exe
-->

Code: Select all

Run, %comspec% /c ""%A_ScriptDir%\pdftk.exe" C:\TEMP\rohdat\%OriginalPDF% output C:\TEMP\rohdat\%neuePDF% uncompress"
- ersetzen von Inhalten mit Hilfe von z.B. allen von gsar.exe, auch Commandlinetool http://gnuwin32.sourceforge.net/packages/gsar.htm
-->

Code: Select all

Run, %comspec% /c ""%A_ScriptDir%\gsar.exe" "-s%suchstring%" "-r%ersetzestring%" -o C:\TEMP\rohdat\*.pdf && pause"
regards,
AHK_fan :)
aifritz
Posts: 8
Joined: 29 Jul 2018, 11:30

Re: Dirty hack zur pdf Manipulation

Post by aifritz » 19 Sep 2018, 00:33

Besten Dank erst einmal für Eure Antworten. :)
Sieht so schön einfach aus, wenn man mit Notepad++ die Datei öffnet und dort editiert, aber da lag ich wohl falsch, dies mal eben mit ahk zu m achen.
Mit binären Dingen wie Numget/Numput habe ich mich bisher noch nicht beschäftigt und erscheint mir auch nicht so schnell umsetzbar, wie ich dachte.
Da ich es beruflich nutzen wollte, wäre die ahk Lösung am naheliegensten, bevor ich bei unserer IT-Abt. langwierig Anträge zur Nutzung anderer Tools beantrage.
User avatar
Frosti
Posts: 121
Joined: 27 Oct 2017, 14:30
GitHub: Ixiko

Re: Dirty hack zur pdf Manipulation

Post by Frosti » 20 Sep 2018, 05:18

Schade das hatten wir beide schon vor kurzem als Thema. Zu gerne hätte ich eine library die mit den binary offsets einer pdf Datei umgehen kann. Das wäre auch attraktiv um Leute für AHK als Sprache zu gewinnen. Ich bräuchte vermutlich 2 Jahre um eine halbwegs schnelle und stabile Library zu erstellen. Das lohnt sich auch für mich nicht. Klar gibt es eine Menge Hilfsmittel aus anderen Sprachen. Doch die Lizenzbedingungen sind ein riesiges Problem. Wirklich echte freie Software gibt es nicht. Siehe free PdfReaders Campain
Hinter jeder Software im Windows Segment steht dann doch eine Firma die Geld verdienen muss. Du kannst eine Lizenz bekommen, wenn man nachweist das man eine gemeinnützige Organisation ist - also "profitlos" . Der typische Freiberufler Deutschlands fällt damit raus, auch wenn er ohne jedwede Rechtsgrundlage zur Nutzung des Pdf Formates gezwungen wird. Es fällt daher schwer für die Nutzung des Formates privates Geld zu veräußern. Gesetzliche Grundlage ist die Befreiung von der Gewerbesteuer, weil der Freiberufler eben keine Tätigkeit zum reinen Gelderwerb ausführt. Die Grenze ist haarscharf gezogen und es wird ebenso haarscharf kontrolliert und eben auch leidvoll erzwungen. Anwälte und Ärzte sind derzeit die erzwungenen Vorreiter und wie geschrieben in dieser Reihenfolge gezwungen worden. Noch dürfen Steuerberater und anerkannte Künstler sowie Kunstnahe Berufe (Mediendesigner...) ihre Arbeitsdokumente in Papierform vorhalten. Der Rest muss schon lange Lizenzgelder für PDF abführen. Wieso wird einfach über nicht staatliches Eigentum so verfügt? Beide erstgenannten Gruppen unterliegen in ihrem Honorar ausgehandelten Gebührenordnungen. Preisanpassungen mal ebenso sind somit ausgeschlossen. Was einerseits gut ist weil so keine Preistreiberei oder Dumping entsteht, aber schlecht für den Freiberufler, dessen Familie sowie seinen Angestellten. Das ist kein Jammern! Freiberufler wie Ärzte haben circa 1.5Millionen Angestellte (diese Zahl ist über 15 Jahre alt). Vermutlich liegt die Angestelltenzahl bei Anwälten im ähnlichen Bereich. Ich frage mich daher schon lange, welches Interesse man an den wenigen Angestellten der Autokonzerne hat. Mal so für Kurzarbeit demonstrieren gehen, ich liebe dieses Gedankenspiel, welche Gruppe würde es dann durchgesetzt bekommen? Was macht Euch mehr Sorgen der nicht zur Arbeit erscheinende Fließbandarbeiter oder Angestellte von Freiberuflern die nicht zur Arbeit erscheinen. Der Freiberufler arbeitet immer. Eine Niederlegung unserer Arbeit aus monetären Gründen verweigern wir auch wenn selbst das uns als Verbot auferzwungen ist. Dennoch könnten wir das Chaos nicht beherrschen. Ich nage an keinem Hungertuch. Doch ich weigere mich nach Konzernlogik vorzugehen. Fehlt Dir der Gewinn entlasse Angestellte und setze den verbleibenden Rest noch mehr unter Druck! Was würde das über meine Arbeit aussagen? Ich hoffe hier fühlt sich niemand persönlich angesprochen, höchstens er erkennt seine eigene Naivität. Dann sei es drum. Und dies ist auch kein politisches Forum, aber vielleicht arbeitet ja ein Freund oder ein Familienmitglied für uns. Sieh es einfach so! In diesem Forum sind aber Leute aktiv die einen herausragenden Überblick auf den Wichtigsten und Zukünftig noch wichtigeren Bereich haben. Die IT beeinflusst unser aller Leben! Ich wollte nie grosse Reden halten. Doch Ansprechen sei eben darum erlaubt. Danke fürs Lesen!
User avatar
Frosti
Posts: 121
Joined: 27 Oct 2017, 14:30
GitHub: Ixiko

Re: Dirty hack zur pdf Manipulation

Post by Frosti » 22 Sep 2018, 05:18

Ich sollte mal anfangen humorvoller zu schreiben. Immer diese ewige Nörglerei! Das nervt!
Deshalb hat mich mal ein Lachtrainer beleidig und das ist kein Witz! Ich habe nicht ohne Hintergedanken in einem nur für Ärzte konzipierten Forum in den seit mehr als einem Jahr leeren Thread: "Aktuelles" geschrieben "Was gibt es Aktuelles?". Sein Vorschlag war Twitter, Fernseher und Zeitung für Neues zu nutzen. Ansonsten nerve ich hier nur. Das war nun mein erster Satz in diesem Supportforum. Nun Twitter und Fenseher habe ich nicht und selbst eine Zeitung die interne Neuigkeiten zur Software seines Konzernes enthält konnte er mir nie nennen. Seither weiß ich. Ich bin nicht witzig! Ob der Mann diesselbe Erkenntnis über sich hatte weiß ich nicht. Er arbeitet aber noch für sie und weiterhin nebenberuflich als Lachtrainer!
User avatar
divanebaba
Posts: 743
Joined: 20 Dec 2016, 03:53
Location: Diaspora

Re: Dirty hack zur pdf Manipulation

Post by divanebaba » 22 Sep 2018, 08:06

Frosti wrote:... ein Lachtrainer ...
Ich lach mich kaputt! :lol: Gibt es das wirklich?
Ich bräuchte eher einen, der mir das ständige Lachen abgewöhnt. :D :D
Man kann im Beruf noch nicht mal grinsen, ohne daß irgend ein Depp oder gar Oberdepp das persönlich nimmt.
Wenn man dann auch noch professionell lacht, dann gute Nacht. :mrgreen: :mrgreen:

EDIT: Zurück zum Thema. Für PDF-Manipulationen nehme ich PDFill FREE PDF Tools.
Ich weiß aber nicht, ob man dies mit AHK sinnvoll nutzen kann. Gibt so vieles, was ich nicht weiß. :HeHe:
[Starklichtbirne IQ >> 250!!] Dank deutscher Lehrerempfehlung, nur Süperdepp und Hartz4-Bezieher, statt Abitürient und Einkommensbezieher.
[Strong light bulb IQ >> 250!!] Thanks to german teacher's recommendation, willful and welfare recipient, instead of high school graduate and moneymaker.

Entering high school for foreign children is not prohibited in GERMANY, it's only made nearly impossible by government.
Virtually the only way - visiting high school abroad.

ADVERTISING: Patent pending strip accumulator - süper advanced technology - priceless inexpensive, space-saving, energy efficient - Patent priority for sale.
toralf
Posts: 506
Joined: 27 Apr 2014, 21:08
Location: Germany

Re: Dirty hack zur pdf Manipulation

Post by toralf » 22 Sep 2018, 12:41

Falls es das Ziel war die Seiten des PDF zu beschneiden, dann könnte Briss helfen.
http://briss.sourceforge.net
ciao
toralf
User avatar
divanebaba
Posts: 743
Joined: 20 Dec 2016, 03:53
Location: Diaspora

Re: Dirty hack zur pdf Manipulation

Post by divanebaba » 22 Sep 2018, 13:23

Frosti wrote:... That he is!
Ein Lach-Club.
Ich muss sagen, der Club hat seinen Zweck erfüllt. Ich habe gut gelacht. :D :D

Was machen die da wohl den ganzen Tag? Hoffentlich betreiben die ihr Lachtraining nicht als Leistungs- oder gar Extremsport. :lol: :lol:
Ob man da auch so eine Art Stuntman-Ausbildung für Lachaufgaben absolvieren kann?
Vielleicht bezieht das Fernsehen professionelle "Vorlacher" von solchen Vereinen. :crazy: :crazy: :lol: :lol:
[Starklichtbirne IQ >> 250!!] Dank deutscher Lehrerempfehlung, nur Süperdepp und Hartz4-Bezieher, statt Abitürient und Einkommensbezieher.
[Strong light bulb IQ >> 250!!] Thanks to german teacher's recommendation, willful and welfare recipient, instead of high school graduate and moneymaker.

Entering high school for foreign children is not prohibited in GERMANY, it's only made nearly impossible by government.
Virtually the only way - visiting high school abroad.

ADVERTISING: Patent pending strip accumulator - süper advanced technology - priceless inexpensive, space-saving, energy efficient - Patent priority for sale.
User avatar
Frosti
Posts: 121
Joined: 27 Oct 2017, 14:30
GitHub: Ixiko

Re: Dirty hack zur pdf Manipulation

Post by Frosti » 23 Sep 2018, 05:38

Herr Divanebaba, im vorletzten Post wirkte es so als seiest Du jetzt der Sklave(neuer Job?) der Du sein wolltest. Meine divergenten gleichzeitig ablaufenden Gedanken behindern mich manchmal in der Wahrnehmung. Vielleicht sollte ich 'Lachen' lernen um dieses ungelöste Problem zu mindern. Das mal eben nur so nebenbei.

Mag sein das man dort auch eine Agentenausbildung absolvieren kann. Zumindestens lernt man länger durchzuhalten. Denn schon immer galt Quantität mehr als Qualität. Ganz nach dem Motto: 'Wer zuletzt lacht, lacht am besten!'. Oder hat das noch eine andere Bedeutung?

Hast Du einen Hinweis über aktives Qualitätsmanagment auf der Lachclubseite gefunden? Nein? Dann müsste mein vorheriger Absatz zumindestens ein Photönchen Wahrheit enthalten. Kann es sein das sich schon wieder sarkastische Triebe in meinen Gedanken durch gesetzt haben?

Mit Deinen Kommentaren kann ich immer schön lachen! Ich bleib mal lieber hier!
Post Reply

Return to “Ich brauche Hilfe”