Ich schreibe gerade ein kleines Tool das einem Kolegen die Arbeit etwas erleichtern soll.
Dafür suche ich nach einer möglichkeit eine PDF datei (meist gebäude grundrisse) als Hintergrund zu laden,
um auf der darüber liegenden Ebene Grafiken zu platzieren.
Ähnlich einer Gebäudeplanungs Software, nur minimalistischer
und ohne möglichkeit am grundriss änderungen vor zu nehmen.
Da mir das Google keine infos ausspucken konnte wie ich ein PDF brauchbar einbinden kann,
habe ich mich dafür entschieden das "Snapshot Tool" des Adobe Reader ein zu binden.
->
bilderkonvertieren.c...-grafik-konvertieren
was ich nun damit vor habe und wobei ich hilfe brauche:
- erstellen einer Import funktion.
-- diese soll eine pdf datei im Adobe Reader öffnen können.
-- das verwenden des "Snapshot Tool" ermöglichen.
-- und nach dem beenden des Adobe Reader, soll automatisch
die in der zwischenablage liegende grafik in eine picture box eingefügt werden.
---- nachtrag ----
so öffne ich bis jetzt ein pdf direckt in meiner anwendung.
dort schaffe ich es aber nicht die toolbar anzupassen.
und auch das ausblenden des navigations pannel links schaffe ich nicht.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| OpenFileDialog dlg = new OpenFileDialog(); dlg.Filter = "Adobe PDF (*.pdf) |*.pdf;"; dlg.ShowDialog(); if (dlg.FileName != null) { axAcroPDF1.LoadFile(dlg.FileName); axAcroPDF1.setShowToolbar(true); } |
gruß,
avoid
Moderiert von Narses: Beiträge zusammengefasstok die nav-bar links bekomm ich mit folgender zeile zumindestens eingeklappt aber nicht auf hide.
C#-Quelltext
1:
| axAcroPDF1.setPageMode("none"); |
aber an der toolbar kann ich über COM wohl garnicht rum stellen.
wird wohl besser sein ich rufe den Reader aus meiner anwendung als subprozess auf.
damit hab ich dann auch das beenden vom Reader im blick und kann darauf reagieren.
an dem einfügen aus der zwischenablage in die picturebox arbeite ich gerade ....
--- nachtrag ---
einfügen aus zwischenablage funktioniert, aber noch ohne prüfung auf gültigen inhalt.
C#-Quelltext
1: 2: 3: 4: 5: 6:
| System.Drawing.Image returnImage = null; if (Clipboard.ContainsImage()) { returnImage = Clipboard.GetImage(); } pictureBox_Hintergrund.Image = returnImage; |
Moderiert von Narses: Beiträge zusammengefasstdas ist nun der code mit VCS2010Express.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50:
| using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Diagnostics; namespace Planer { public partial class Form1 : Form { public Form1() { InitializeComponent(); }
private void button_Import_Click(object sender, EventArgs e) { open_pdf(); }
private void open_pdf() { OpenFileDialog dlg = new OpenFileDialog(); dlg.Filter = "Adobe PDF (*.pdf) |*.pdf;"; dlg.ShowDialog(); if (dlg.FileName != null) { Process process = new Process(); process.StartInfo.FileName = dlg.FileName; process.Start(); process.WaitForExit(); einfügen_aus_zwischenablage(); } }
private void einfügen_aus_zwischenablage() { System.Drawing.Image returnImage = null; if (Clipboard.ContainsImage()) { returnImage = Clipboard.GetImage(); } pictureBox_Hintergrund.Image = returnImage; } } } |
damit kann ich eine pdf datei suchen, öffnen im Adobe Reader das snapshot tool verwenden
und wenn der Reader geschlossen wird wird die zwischenablage in die picturebox geladen.
für verbesserungs vorschläge bin ich offen aber so geht es erst mal.
sind wie ein wissenschaftliches Experiment. Sie