PDF, Seiten als Bilder anzeigen und extrahieren

    • VB.NET
    • .NET (FX) 4.5–4.8

    Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von -Franky-.

      PDF, Seiten als Bilder anzeigen und extrahieren

      Hi@all

      Eigentlich ist @Joshi schuld daran das ich diesen Code vorstelle. :D In einem anderen Thread hat Joshi erwähnt ich solle mir doch mal die PDF Geschichte von den PowerToys anschauen. Hab ich gemacht und bin dann auf Windows.Data.Pdf.dll gekommen die eine Funktion PdfCreateRenderer exportiert und dafür DirectX benötigt. Letzteres um dann die Seiten einer PDF auf einen D2DDeviceContext oder IDXGISurface zu rendern. Also irgendwie nicht das gelbe vom Ei und der Namespace Windows.Data.Pdf ist auch eher was für UWP-Apps. Also hab ich mal das Internet durchsucht und bin auf folgendes Posting von iseahound gestoßen: autohotkey.com/boards/viewtopic.php?t=80735&start=20

      Also alle APIs und Headerfiles (für die Interfaces) zusammengesucht, das ganze nachgebaut und ein bissel erweitert. Jau, läuft. Wichtig: Auch ich habe das gleiche Problem mit dem Speicher wie im Autohotkey-Thread beschrieben. Falls da jemand eine Lösung hat, immer her damit. Anonsten ist das absoluter Quick&Dirty Testcode und auf die schnelle zusammen geschrieben. Von daher, es darf gern verbessert und erweitert werden. Was kann der Code: PDFs mit und ohne Passwort öffnen, Seiten als Bild darstellen, skalieren, Hintergrundfarbe ändern, Auschnitt aus der Seite darstellen und Seiten als Bilddatei speichern. Im Hintergrund wird wahrscheinlich dennoch DirectX und die Windows Imaging Component (WIC) verwendet um eine PDF-Seite als Bild zu rendern. IPdfPageRenderOptions::get_BitmapEncoderId gibt hier die Encoder-GUID des PNG-WIC-Encoder aus. Per IPdfPageRenderOptions::put_BitmapEncoderId könnte daher auch eine andere WIC-Encoder-GUID gesetzt werden. Im IStream befindet sich dann ein entsprechendes anderes Bildformat das man dann über WIC als Datei (Heif, WMPhoto, DDS) speichern könnte.
      Bilder
      • PdfViewer.png

        48,1 kB, 714×628, 144 mal angesehen
      Dateien
      • VBN_PdfViewer.zip

        (22,19 kB, 110 mal heruntergeladen, zuletzt: )
      Mfg -Franky-

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

      Hi@all

      Hab das ganze nochmal komplett überarbeitet. Interfaces raus und auf Delegates und Pointer umgestellt. Also wer sich das Beispiel bereits heruntergeladen hatte, im Ausgangspost ist der Download ersetzt worden.
      Mfg -Franky-