AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Draw im PDF

Ein Thema von haentschman · begonnen am 12. Jul 2024 · letzter Beitrag vom 15. Jul 2024
Antwort Antwort
Benutzerbild von haentschman
haentschman
Online

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.431 Beiträge
 
Delphi 12 Athens
 
#1

AW: Draw im PDF

  Alt 15. Jul 2024, 08:44
Zitat:
edit: was Du suchst sind Text Markup Annotations (12.5.6.10) zum Markieren / Unterstreichen / Durchstreichen von Text bzw. für Freihand die Ink Annotations (12.5.6.13).
...danke.
  Mit Zitat antworten Zitat
Benutzerbild von ULIK
ULIK
Online

Registriert seit: 25. Sep 2006
Ort: Regensburg
427 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Draw im PDF

  Alt 15. Jul 2024, 09:23
@haentschman: noch ein paar Hinweise, denn das Ganze ist alles andere als trivial:

- wenn Text markiert werden soll, dann mußt Du irgendwie die PDF Koordinaten des Textbereichs herausbekommen. Eventuell bietet DynaPDF, hier eine Möglichkeit, sich diesen Koordinatenbereich via Textextraktion geben zu lassen.
- mit diesen kannst Du dann eine entsprechende Annotation erstellen (die dann über dem Text selbst liegt)
- Danach wirst Du das PDF speichern und erneut in den DevExpress Viewer laden müssen, um es anzuzeigen.
- bei Freihand wird's minimal einfacher: hier mußt Du nur die Maus Koordinaten aufzeichnen und in PDF Koordinaten umrechnen lassen und dann damit die Ink-Annotation erstellen.
- Du kannst zwar theoretisch alles selbst zeichnen, in dem Du dir eine Art Aufzeichnungslayer über der PDF Viewer-Komponent erstellst und dort Markierungen / Linien zeichnest. Dann hast Du sofort den visuellen Feedback. Nur mußt Du dann darauf achten, ob du den auch 1 zu 1 so im PDF erstellen lassen kannst. Das hängt dann nämlich vom Viewer ab.
- teste auch, was passiert, wenn deine PDFs eine Seitendrehung definiert haben. Das wird nämlich bei der Berechung der PDF Koordinaten interessant.

Generell wird das Problem sein: Wenn Cheffe mit der Maus den Bereich markiert oder hinein zeichnet, will er ja auch sehen, was sich da gerade tut. Hier mußt Du dir etwas überlegen, wie man zumindest minimal ein visuelles Feedback geben kann und erst das Beenden der Aktion zeigt dann die Darstellung via PDF Annotation / Viewer an. Oder man zeichnet immer alles selbst, dann muß man aber dafür sorgen, daß der Viewer die eigenen Annotations nicht anzeigt bzw. beim Speichern müssen diese entsprechend erkannt / modifiziert oder gelöscht werden.

Eventuell kannst Du auch MS Edge als PDF Viewer einbinden. Dort scheint es entsprechende Möglichkeiten zum Anlegen von Annotations zu geben: https://www.howtogeek.com/725554/how...icrosoft-edge/
Hab ich selbst aber noch nicht getestet.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman
Online

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.431 Beiträge
 
Delphi 12 Athens
 
#3

AW: Draw im PDF

  Alt 15. Jul 2024, 13:55
Update:
Auch mit WebView2(Edge) fehlt das Bearbeiten...
https://stackoverflow.com/questions/...pdf-draw-tools
https://github.com/MicrosoftEdge/Web...ck/issues/1638

Frage:
Hat jemand das Adobe OCX und kann damit "Markieren"? Meins will nicht...
Angehängte Grafiken
Dateityp: jpg EdgeKomplett.jpg (43,2 KB, 26x aufgerufen)
Dateityp: png WebView2.PNG (29,3 KB, 22x aufgerufen)

Geändert von haentschman (15. Jul 2024 um 15:06 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von gubbe
gubbe

Registriert seit: 8. Okt 2005
Ort: Schleswig-Holstein
150 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Draw im PDF

  Alt 15. Jul 2024, 14:30
Diese Funktionen wurden entfernt aus dem PDF-Reader innerhalb des Webview2 und werden wohl auch nicht wieder kommen.

Muss die PDF-Datei denn innerhalb Deines Programms angezeigt werden?

Ansonsten kannst Du den Edge-Browser im App-Modus aufrufen und die PDF-Datei übergeben:

"%ProgramFiles(x86)%\Microsoft\Edge\Application\ms edge.exe" "--app=PDFDatei.pdf"

Könnte doch schon reichen so, oder?

Vor allem, wenn das eine interne Funktion ist nur für "Cheffe"

PDF-Annotation selbst implementieren ist doch viel zu aufwendig. Wenn Du einen PDF-Reader im Programm hast und das so bleiben soll, würde ich vielleicht einen Button machen "Bearbeiten" und dann mit obigem Befehl den Edge-Viewer aufrufen. Evtl. musst Du noch ein bisschen etwas drumherum entwickeln, um die geänderte Datei wieder einzulesen oder das Fenster zu schließen.

Wenn doch alles im eigenen Programm passieren soll, wäre ein andere Möglichkeit, die Annotationen nur in einem zusätzlichen Layer in Delphi über der PDF-Datei zu zeichnen und gar nicht in die Datei einzubinden. Wenn die PDF nur in Deinem Programm angezeigt wird, wärst Du so auch flexibel, sie ein-/auszublenden, zu löschen, auszuwerten etc. und die Original-Datei bleibt erhalten.

Geändert von gubbe (15. Jul 2024 um 14:33 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz