itextshap PDF Inhalt in neue Datei

  • VB.NET
  • .NET (FX) 4.0

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von razzzer530i.

    itextshap PDF Inhalt in neue Datei

    Moin,

    ich nöchte den Inhalt einer PDF Datei in eine neue Datei schreiben.
    Ziel ist es, nicht das Dokument zu kopieren, sondern den Inhalt der PDF in ein ganz neues Dokument zu schreiben.
    finde jedoch nichts in VB was mir da hilft. Optional wäre noch die Shellanweisung eine PDF neu über den PDF Creator zu drucken, was allerdings unzuverlässig ist.

    Bitte im Hilfe!
    ~Wir leben zwar alle unter dem gleichen Himmel, aber es haben nicht alle den gleichen Horizont~
    Ich habe mal eine Verketten-Funktion gebraucht. Vielleicht kannst du damit was anfangen/ableiten.
    Verketten von PDFs

    VB.NET-Quellcode

    1. Imports iTextSharp.text
    2. Imports iTextSharp.text.pdf

    VB.NET-Quellcode

    1. Private Sub _concat(ByVal src As List(Of String), ByVal outputPdfPath As String)
    2. Dim DEST As Document = New Document
    3. Dim pdfCopyProvider As PdfCopy = New PdfCopy(DEST, New System.IO.FileStream(outputPdfPath, System.IO.FileMode.Create))
    4. Dim importedPage As PdfImportedPage = Nothing
    5. Dim page As PdfImportedPage = Nothing
    6. DEST.Open()
    7. For Each pPath As String In src
    8. Dim reader As New PdfReader(pPath)
    9. Dim pages As Integer = reader.NumberOfPages
    10. ' loop over document pages
    11. Dim i As Integer = 0
    12. While i < pages
    13. page = pdfCopyProvider.GetImportedPage(reader, System.Threading.Interlocked.Increment(i))
    14. pdfCopyProvider.AddPage(page)
    15. End While
    16. pdfCopyProvider.FreeReader(reader)
    17. reader.Close()
    18. Next
    19. DEST.Close()
    20. End Sub

    Source: kuujinbo.info/cs/itext_cat.aspx
    @petaod

    Der Unterschied :
    Ich bekomme PDF Dokumente, einige sind mit einem Ownerkeyword gesichert. Per itextsharp stampe ich einen Eingangsstempel darauf und eine gewinne Nummer zu Identifikation des Dokumentes.
    Durch das Ownerkeyword wird diese Funktion blockiert und ein Error generiert.
    Nehme ich aber eine PDF, haue sie beispielsweise in PDF24 und generiere ein neues Dokument, so ist der Schutz aufgehoben und ich kann stampen.
    Es werden keine Daten im Dokument selbst verändert. Ausschließlich der Stempel kommt oben drauf.

    @HenryV
    Danke, ich werde mal schauen, ob ich so den Stamp ausführen kann. Könnte gut möglich sein. Werde Feedback zum Ergebnis geben.
    ~Wir leben zwar alle unter dem gleichen Himmel, aber es haben nicht alle den gleichen Horizont~
    @petaod

    Im Nachhinein wäre das wohl richtiger gewesen...

    @HenryV

    das mergin klappt super, nur eben nicht wenn ein Ownerkeyword vorhanden ist. Daher hilft mir das leider nicht. Aber danke trotzdem. :)
    A
    ~Wir leben zwar alle unter dem gleichen Himmel, aber es haben nicht alle den gleichen Horizont~

    HenryV schrieb:

    Dafür gibt es ab iText5 PdfReader.unethicalreading = True

    Das habe ich bereits gesehen, verwende auch die neuste dll. Allerdings :



    Steht mir diese Option gar nicht zur Auswahl.
    Programmiere jetzt schon recht lange. Wenn ich die Property überschreiben müsste, müsste Sie ja so trotzdem abrufbar sein?
    Was mache ich falsch? Hast du vlt. eine DLL die defenitiv funktioniert?

    Klär mich auf :)
    ~Wir leben zwar alle unter dem gleichen Himmel, aber es haben nicht alle den gleichen Horizont~

    HenryV schrieb:

    Das muss direkt dem PdfReader zugewiesen werden.

    VB.NET-Quellcode

    1. PdfReader.unethicalreading = True
    2. Dim pdfr As New PdfReader(fi.FullName)


    Unglaublich aber hat mein Problem gelöst. Vielen Dank!
    ~Wir leben zwar alle unter dem gleichen Himmel, aber es haben nicht alle den gleichen Horizont~