Anzeige:
Ergebnis 1 bis 9 von 9

Thema: Mit Perl PDF im Klartext bearbeiten

  1. #1
    Registrierter Benutzer
    Registriert seit
    25.01.2002
    Beiträge
    21

    Mit Perl PDF im Klartext bearbeiten

    Hallo,

    ich möchte verschiedene PDF-Dateien bearbeiten und Kommentare entfernen. Da ich schon vorher einmal mit der Verarbeitung Probleme gehabt habe, sollte das Skript erstmal nur die Datei einlesen und nachher wieder ausschreiben, ganz simpel. Hier tritt nun schon das erste Problem auf: Ist die Dateigröße vorher 2.405 kB groß, ist Sie nach dem Ausschreiben 2.417 kB groß. Das ganze ist unter Windows, warum das so ist, keine Ahnung. Vielleicht könnt ihr ja helfen ? Adobe kann das Ganze dann auch nicht mehr darstellen und sagt, dass nicht genug Daten für ein Bild da sind.

    tschö, Floyd

  2. #2
    Registrierter Benutzer Avatar von Molaf
    Registriert seit
    15.11.2004
    Beiträge
    127
    Welches Modul nutzt Du dafür?

  3. #3
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Moin moin,
    Zitat Zitat von Floyd Beitrag anzeigen
    Ist die Dateigröße vorher 2.405 kB groß, ist Sie nach dem Ausschreiben 2.417 kB groß.
    selbst dann, wenn Du keine vermeintlichen Kommentare rausnehmen lässt?
    Zitat Zitat von Floyd Beitrag anzeigen
    Das ganze ist unter Windows, warum das so ist, keine Ahnung.
    Also das muß ich mir erstmal auf der Zunge zergehen lassen
    MfG,
    Rainer
    There's nothing a good whack with a hammer won't fix!

  4. #4
    Registrierter Benutzer
    Registriert seit
    25.01.2002
    Beiträge
    21
    Hallo,

    Molaf: Wie gesagt, ich benutze kein Modul, sondern lese die Datei zeilenweise in einen Array ein, möchte dann per Regex bestimmte Eigenschaften /Producer() etc. ändern und später wieder ausgeben.

    Da es in der fertigen Version zu Problemen geführt hat, habe ich erstmal alle Veränderungen des Stringes entfernt und nur in den Array eingelesen und in die Datei wieder eingeschrieben.

    Unter Linux funktioniert das alles übrigens einwandfrei und die Dateigröße bleibt so wie sie sein sollte.

    tschö, Peter

  5. #5
    Registrierter Benutzer Avatar von Molaf
    Registriert seit
    15.11.2004
    Beiträge
    127
    Wenn Du Dir die Mühe machst, das ganze selber zu parsen - tja, warum eigentlich - dann kommt ja der ganze PDF-interne Konventionskrams auf Dich zu. Da kann ich natürlich nciht weiterhelfen.

    Wenn aber ohne wirkliche Änderungen die Dateigrösse später nicht stimmt, könnte das mit der Zeichenkodierung (UTF/ISO 8859-1) zu tun haben, oder minimal mit den anderen Zeilenumbrüchen (\x0d\x0a statt bloss \n). Dass aber eine so grosse Änderung eintritt kan ich mir kaum erklären.

    Kannst Du mal den betreffenden Code posten?

  6. #6
    Registrierter Benutzer
    Registriert seit
    25.01.2002
    Beiträge
    21
    Klar, hier kommt der Code:

    Code:
    [...]
    
    if(-e $ARGV[0]) {
      open(PDF, $ARGV[0]) or die $!;
      binmode PDF, ":utf-8";
      @zeilen = <PDF>;
      close(PDF);
    
      open (PDF, ">Test.pdf") or die $!;
      binmode PDF, ":utf-8";
    
      foreach (@zeilen) {
       // REGEX
        print PDF $_;
      }
      close (PDF);
    }
    [...]
    Wie ihr seht nichts mystisches ... Wie gesagt, unter Linux keine Probleme unter Windows ja ....

  7. #7
    Registrierter Benutzer
    Registriert seit
    05.06.2003
    Beiträge
    118
    Da du nix interpolierst, kann's eigentlich auch nix mit verschiedenen <cr>s sein. Meine wahrscheinlichste Vermutung zu diesem Zeitpunkt ist, daß deine RegEx etwas einfügt.

    TME

  8. #8
    Registrierter Benutzer
    Registriert seit
    25.01.2002
    Beiträge
    21
    Hallo,

    das Problem besteht auch, wenn kein Regex da ist, die Datei nur eingelesen wird und ausgegeben wird. Das ist ja auch gerade das komische.

    tschö, Peter

  9. #9
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Moin moin,
    Zitat Zitat von Floyd Beitrag anzeigen
    das Problem besteht auch, wenn kein Regex da ist, die Datei nur eingelesen wird und ausgegeben wird.
    und wenn Du die Ausgabedatei nochmal durchlaufen lässt? Wächst sie dann weiter an?

    BTW vllt solltest Du es erst einmal mit einer etwas kleineren (sprich: überschaubarer) Datei
    versuchen... und wenn Du Eingangs- und Ausgangsdatei byteweise vergleichst, solltest Du zumindest ansatzweise erkennen können, wo's nicht mehr passt.
    MfG,
    Rainer
    There's nothing a good whack with a hammer won't fix!

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •