Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

PDF anzeigen, Positionsfeld für Text anzeigen, bewegen

Frage Entwicklung Visual Studio

Mitglied: ahstax

ahstax (Level 2) - Jetzt verbinden

22.09.2013 um 18:49 Uhr, 2198 Aufrufe, 2 Kommentare, 1 Danke

Hallo,

ich würde gerne in PDF-Dokumente auf der ersten Seite einen Text einfügen. Mit iTextSharp klappt das ziemlich einfach.
Ich würde aber nun gerne die erste Seite des PDFs anzeigen lassen, darin einen Rahmen darstellen, der die Größe des einzufügenden Textes (eingegeben in eine TextBox) hat und mit der Maus verschiebbar ist.
Sinn? Der eingefügte Text soll keinen bestehenden Text überdecken.

Wo und mit welchem vb.net-Zauber könnte ich denn da ansetzen?

Ich bin gespannt auf Hinweise und Anregungen!!!

Neugierige Grüße,
Andreas
Mitglied: colinardo
24.09.2013 um 09:22 Uhr
Hallo Andreas,
klingt also wolltest du hier einen rudimentären PDF-Editor basteln
Du könntest das so lösen: Du baust in VB.Net eine Form mit dem Adobe Reader ActiveX der dir das PDF in einer festen Zoomstufe anzeigt(ganze Seite), in dieser Form fängst du die Mausposition über dem Control ab und speicherst sie bei einem Klick in einer Variablen; diese Koordinaten rechnest du dann auf relative PDF-Seitengröße um und fügst mit iTextSharp den Text an der gewünschten Stelle ein.
Ansonsten wäre eine Alternative nach einem bestimmten Text im PDF mit iTextSharp zu suchen und anhand dessen Position deinen Text positionieren.

Grüße Uwe
Bitte warten ..
Mitglied: ahstax
24.09.2013 um 16:31 Uhr
Hallo Uwe,

Danke für Deine Antwort.

Ein etwas geänderter Ansatz meinerseits führte zu folgendem Zwischenergebnis:
Das PDF wird geladen, die erste Seite abgetrennt (itextsharp) und in ein tiff umgewandelt (com.adobe.acrobat.tiff).
In das tiff wird der einzufügende Text (3 Zeilen mit unterschiedlicher Formatierung) eingesetzt (Graphic.DrawString(Text, Font, Brush, Position)).
Um den eingefügten Text wird ein Rechteck gezeichnet.
Das tiff wird in einer Picturebox angezeigt.

Leider ist das Recheckt höher, als der Text...
01.
Text1 = "Texttexttext" 
02.
Font1 = New System.Drawing.Font("Arial", 14, FontStyle.Regular) 
03.
Position1 = New Point(8, 5) 
04.
 
05.
Text2 = txtBoxText.Text 
06.
Font2 = New System.Drawing.Font("Arial", 28, FontStyle.Regular) 
07.
Position2 = New Point(3, 5 + 16) 
08.
 
09.
Text3 = txtBoxUnserZeichen.Text 
10.
Font1 = New System.Drawing.Font("Arial", 14, FontStyle.Regular) 
11.
Position3 = New Point(8, 5 + 16 + 35) 
12.
 
13.
        Dim stringSize1 As New SizeF 
14.
        Dim stringSize2 As New SizeF 
15.
        Dim stringSize3 As New SizeF 
16.
        Dim stringSize As New SizeF 
17.
 
18.
        stringSize1 = Graphic.MeasureString(Text1, Font1) 
19.
        stringSize2 = Graphic.MeasureString(Text2, Font2) 
20.
        stringSize3 = Graphic.MeasureString(Text3, Font1) 
21.
        stringSize.Height = stringSize1.Height + stringSize2.Height + stringSize3.Height 
22.
 
23.
        If stringSize1.Width >= stringSize2.Width And stringSize1.Width >= stringSize3.Width Then 
24.
            stringSize.Width = stringSize1.Width 
25.
        Else 
26.
            If stringSize2.Width >= stringSize1.Width And stringSize2.Width >= stringSize3.Width Then 
27.
                stringSize.Width = stringSize2.Width 
28.
            Else 
29.
                If stringSize3.Width >= stringSize1.Width And stringSize3.Width >= stringSize2.Width Then 
30.
                    stringSize.Width = stringSize3.Width 
31.
                End If 
32.
            End If 
33.
        End If 
34.
 
35.
        Dim Zeilenabstand As Integer = Font1.GetHeight 
36.
        'String auf Bild zeichnen 
37.
        Graphic.DrawString(Text1, Font1, Brush, Position1) 
38.
        Graphic.DrawString(Text2, Font2, Brush, Position2) 
39.
        Graphic.DrawString(Text3, Font1, Brush, Position3) 
40.
 
41.
        Graphic.DrawRectangle(New Pen(Color.Red, 1), 8.0F, 5.0F, CInt(stringSize.Width), CInt(stringSize.Height)) 
42.
 
43.
 
Woran kann das liegen?
Und irgendwie habe ich festgestellt, dass unterschiedliche Größenangaben (zumindest beruhend auf unterschiedlichen Basen) verwendet werden, kann das sein? (Schriftgröße, image.height...)

Neugierige Grüße,
Andreas



Der Vollständigkeit halber:meine nächste Schritte jetzt:
Rechteck in die richtige Größe bringen
Rechteck (einschließlich Text) beweglich machen
Bitte warten ..
Ähnliche Inhalte
Webbrowser
gelöst Firefox kann PDF-Dateien nicht anzeigen (7)

Frage von Hertie zum Thema Webbrowser ...

JavaScript
gelöst Datumabhängiger Text in HTML anzeigen (4)

Frage von adm2015 zum Thema JavaScript ...

Batch & Shell
Powershell, PDF (6)

Frage von AnkhMorpork zum Thema Batch & Shell ...

Batch & Shell
PDF auf Email automatisiert über Netzwerk drucken (1)

Frage von Str33tfight3r zum Thema Batch & Shell ...

Neue Wissensbeiträge
Sicherheits-Tools

Trendmicro OSCE und das Fall Creators Update Win10 RS3

(3)

Information von Henere zum Thema Sicherheits-Tools ...

Microsoft Office

Text in Zahlen umwandeln

Tipp von logische zum Thema Microsoft Office ...

Erkennung und -Abwehr

Infineon TPMs unsicher! Bitlocker ggf. angreifbar

(4)

Information von Lochkartenstanzer zum Thema Erkennung und -Abwehr ...

Firewall

PfSense Repository für Version 2.3.x

(6)

Information von Dobby zum Thema Firewall ...

Heiß diskutierte Inhalte
Microsoft Office
ICH BIN AM ENDE MEINES IT-WISSENS ANGELANGT!!!! (38)

Frage von 134537 zum Thema Microsoft Office ...

Windows Server
gelöst Gruppenrichtlinie greift nicht zu! (23)

Frage von Syosse zum Thema Windows Server ...

Hosting & Housing
Mailserver Software Empfehlungen (21)

Frage von sunics zum Thema Hosting & Housing ...