Autor Beitrag
avoid
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 230
Erhaltene Danke: 4

MSDos, WinXP32, Win764, Win10, Android, Debian
msl (mIRC edit), html & php & Java (DreamweaverMX), Basic (picaxe PE6), C (Arduino IDE), C# (vs2010,2015,2017,2019,Unity,Android Studio)
BeitragVerfasst: Sa 26.01.13 19:11 
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.
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
OpenFileDialog dlg = new OpenFileDialog();
// set file filter of dialog  
dlg.Filter = "Adobe PDF (*.pdf) |*.pdf;";
dlg.ShowDialog();
if (dlg.FileName != null)
{
    axAcroPDF1.LoadFile(dlg.FileName); // Opens and displays the specified document within the browser.
    axAcroPDF1.setShowToolbar(true); // Determines whether a toolbar will appear in the viewer.
}

gruß,
avoid

Moderiert von user profile iconNarses: Beiträge zusammengefasst

ok die nav-bar links bekomm ich mit folgender zeile zumindestens eingeklappt aber nicht auf hide.
ausblenden 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.
ausblenden 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 user profile iconNarses: Beiträge zusammengefasst

das ist nun der code mit VCS2010Express.

ausblenden volle Höhe C#-Quelltext
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; // für Process

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.

_________________
Gute Fragen sind wie ein wissenschaftliches Experiment. Sie setzen eine Menge Wissen bereits voraus.
bitcoin:1J5dgQQp8eUy8wkUxyztBUVCkCpo5MQEQs?label=Danke