PDF, Speichern als Text, automatisch per Code

  • C#

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von Petersilie.

    PDF, Speichern als Text, automatisch per Code

    Hallo Leute,

    gibt es eine Möglichkeit, per Code eine PDF Datei zu öffnen,
    und dann "Speichern als Text" auszuführen? (Adobe Reader)

    Ich habe zwar einen C# Code, der mir eine PDF in Text umwandelt,
    aber da ist die Struktur der Datei am Ende furchtbar.

    Wenn ich händisch in Adobe Reader, die PDF als Text speichere,
    ist das ganze wunderbar Strukturiert.
    Damit würde ich lieber weiter arbeiten, da es mir einfach vieles
    erleichtert.

    Im Anhang ein Bild der Option die ich meine.
    Bilder
    • Unbenannt.JPG

      27,21 kB, 596×207, 253 mal angesehen

    Petersilie schrieb:

    einen C# Code


    Welchen Genau? Verwendest du die Ghostscript-Api oder wie gehst du vor?
    Ggf. schaust du im Netz weiter ob es noch etwas sinnvolles gibt. ich finde auf Anhieb 4 Bibliotheken, mit denen das gehen sollte.
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:
    @petaod Danke, für die Hilfe.

    Dann nehme ich wohl doch meinen, durch C# erstellten Text.
    Kennt jemand eine gute Methode, um bestimmte Daten aus einem String zu holen?
    Ich dachte an Regex.Match, aber ich habe noch nicht viel C# Erfahrung, bzw. generell Programmier Erfahrung.

    Mein String sieht so in der Richtung aus: Sa01.04102So02.04102Mo03.048:0712:0812:2215:38D16:01D17:057,978,00-0,03-0,03101Di04.047:4812:2812:5516:538,088,000,080,05101Mi05..... usw.
    Dort möchte ich jetzt immer alles zwischen "Mo" und "Di" rausfiltern und in ein Array schreiben. (Mo = Montag, es soll also für alle Wochentage gemacht werden am Ende)

    Mit dem was ich dafür bis jetzt gemacht habe, funzt es nicht.
    Könnt ihr mir da helfen?


    Hier Code snippets:

    C#-Quellcode

    1. private void CreateStringsOfDays(string input)
    2. {
    3. getData(input, "Mo", "Di"); //mit Regex.Matches
    4. string Mondays = getDataBetween(input, "Mo", "Di"); //mit Substring
    5. string Tuesdays = getDataBetween(input, "Di", "Mi");
    6. string Wednesdays = getDataBetween(input, "Mi", "Do");
    7. string Thursdays = getDataBetween(input, "Do", "Fr");
    8. string Fridays = getDataBetween(input, "Fr", "Sa");
    9. }
    10. private static string getDataBetween(string input, string begin, string stop)
    11. {
    12. int Start, End;
    13. if (input.Contains(begin) && input.Contains(stop))
    14. {
    15. Start = input.IndexOf(begin, 0) + begin.Length;
    16. End = input.IndexOf(stop, Start);
    17. return input.Substring(Start, End - Start);
    18. }
    19. else
    20. {
    21. return "";
    22. }
    23. }
    24. private void getData(string input, string start, string end)
    25. {
    26. Regex reg = new Regex(start + "*" + end);
    27. foreach (Match match in reg.Matches(
    28. input))
    29. {
    30. Console.WriteLine(match.Value);
    31. }
    32. }



    @Acr0most Ich benutze die iTextSharp library.
    Der Code dafür ist nicht Original v. mir.
    Habe ihn aus dem Internet und ein zwei Sachen angepasst.
    Link zum Original: bytes.com/topic/asp-net/answers/874600-read-pdf-file
    Name des Erstellers: sharifee

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Petersilie“ ()

    Bei der String.Split - Methode kannst du ein Array an Separatoren angeben.
    Da ich nicht weiß, wie deine Daten aufgebaut sind, bin ich mir nicht sicher, ob dir das genügt. Denn es wird an diesen Stellen gesplitten und die Separatoren werden aus dem String geschmissen.

    Also wenn die immer den selben Aufbau haben - ok, wenn mal ein Tag fehlen sollte, dann wird das nicht gehen, weil dann der Index nicht mehr stimmt.

    Hier sieht das Ergebnis recht gut aus, probier es mal dadrüber.
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:
    Das mag sein, aber Vorsicht, ist kostenpflichtig wenn ich das richtig sehe.

    LG Acr0most
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:
    ich weiß nicht, welche Aussage stimmt, aber laut deren Website ist PDF-Focus auch nicht kostenlos.
    wenn du mehr weißt, sag Bescheid. :)
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:
    Es könnte sein, dass es die Evaluations-DLL technisch nicht mit Lizenzprüfung versehen ist.
    sautinsoft.net/help/pdf-to-wor…opic=Overview/license.htm
    ​2. Evaluation License
    The standard software version is free of charge. It may be freely distributed on the sole condition that it is not altered in any way. PDF Focus .Net evaluation version can't be used in commercial applications.
    Ob es juristisch legal ist, ist für mich nicht definitiv ersichtlich.

    Ich würde mir die Freigabe per Mail vom Hersteller holen, bevor ich es in der Firma verteile.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --