Top-Themen

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

Druckformular

Frage Entwicklung VB for Applications

Mitglied: erik87

erik87 (Level 1) - Jetzt verbinden

12.04.2011 um 17:33 Uhr, 5873 Aufrufe, 5 Kommentare

Hallo Forumgemeinde,


ich habe eine Kalkulationssoftware entwickelt welche ich gerne durch eine Druckfunktion erweitern möchte. Nur leider habe ich keine Ahnung wie :D

Also ich habe folgendes schon durch stundenlange suche hinbekommen:


01.
  
02.
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 
03.
        Dim x = PrintDialog1.ShowDialog() 
04.
        PrintDocument1.PrinterSettings.PrinterName = PrintDialog1.PrinterSettings.PrinterName 
05.
        PrintDocument1.Print() 
06.
    End Sub 
07.
     
08.
   Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage 
09.
        Dim Kimg As Image 
10.
        Kimg = Image.FromFile("E:\Projekte\Software\Professionelle Programme\ZRW - Grafik\ZRW\bin\Debug\obj\Kopf.jpg") 
11.
        Dim PF As Font = New Font("Comic Sans MS", 12, FontStyle.Bold) 
12.
        e.Graphics.DrawString("Zeile 1:", PF, Brushes.Black, x, 1) 
13.
        e.Graphics.DrawImage(Kimg, 1, 10) 
14.
    End Sub



Also Texte einfügen und Bilder klappt soweit. Jedoch hätte ich noch ein paar fragen:

1.) Wie kann ich die Pixel in cm umrechnen? Beziehungsweise die x- und y-koordinaten. Habe mir überlegt die Eigenschaften e.PageBounds.Height und e.PageBounds.Height einfach durch die Längen der A4-Seiten zu rechnen und schon habe ich ein Verhältnis. bin mir aber nicht sicher ob das klappt. Eventuell gibt es ja eine Standardfunktion dafür?!

2.) Kann ich das Druckdokument schon irgendwie bevor ich es zum drucker schicke zusammenbasteln??? das muss ja irgendwie gehen :S denn ich brauche mehr als 1 Seite und hätte auch gerne eine Vorschau...

ich denke da kommen noch Folgefragen. Aber erstmal reicht das :D


Mit freundlichsten Grüßen
Mitglied: Okeanos85
13.04.2011 um 10:25 Uhr
Hallo,

mit dem lieben Drucken kann man Tage zubringen ehe alles richtig klappt und dann wenn man denkt es funktioniert alles...fragt jemand geht das auch auf einem anderen Drucker und man stellt fest das alles wieder ganz anders aussieht.
Korrigiert mich also bitte falls ich mit folgendem falsch liege...



1. Am einfachsten geht so etwas mit dem Taschenrechner. Din A4 Seite: Breite 21 cm Höhe 29,7 cm.
Das rechnen wir jetzt mal in zoll um:

1 Zoll = 2,54cm im Englischen Inch
Din A4: Breite 21/ 2,54 = 8,267716535433071" (Zoll)
Din A4: Höhe = 29,7/2,54 = 11,69291338582677" (Zoll)


jetzt brauchst Du noch die Auflösung deines Bildes. Je höher die auflösung desto schärfer kannst Du zeichnen.
Das Stichwort ist hier ppi: PixelPerInch

Beispielsweise eine Auflösung von 200 ppi.

Breite 8,267716535433071" * 200 = 1654px (aufgerundet)

Höhe: 11,69291338582677" * 200 = 2339px (aufgerundet)

Nun zum Quelltext:

Dim kk As New Bitmap(1654, 2339)
kk.SetResolution(200, 200)


So und nun zum Kern der 1. Frage: weil ich ja meine Auflösung festgelegt habe kann ich genauso rückrechnen (2,54 cm / 200 ppi) * [Deiner Pixelzahl] = cm Position auf dem DinA4 Blatt


Zur 2. Frage: mit dem Teil aus 1. und den PrintPreview Controls sollte sich soetwas basteln lassen.

MfG

Okeanos85
Bitte warten ..
Mitglied: erik87
13.04.2011 um 19:12 Uhr
Hallo,

Ok, soweit habe ich das verstanden. Aber wie gehe ich nun genau vor? Mir fehlt so ein wenig das Kochrezept.

Ich arbeite mit VB 2008. Dort ist es möglich ein Objekt namens PrintDocument in der Form einzufügen. Wenn ich mich nicht irre, glaube ich das dieses nur einer Seite umfasst??? (Jedenfalls habe ich keine Eigenschaft gefunden, bei der ich eine Seitenzahl einstellen kann.) Diese eine Seite wird immer nur nach dem Aufruf PrintDocument1.print gedruckt. Also müsste ich mir eine globale Variable einrichten die mir die Seitenzahlen durch läuft und dann im PrintPage-handler die entsprechende Seite zur Laufzeit erstellen?

Das macht in meinen Augen kein Sinn. Wenn ich nun 10 Seiten zu pdf drucken möchte habe ich ja 10 pdf-dokumente anstelle von einem. -.-

Da die Seiten vom Grundaufbau immer gleich sind und ich einfach nur die Tabellen füllen und dann drucken möchte habe ich schon überlegt einfach eine HTML zur Laufzeit zu Erstellen und die dann zu drucken. Wäre das Sinnvoller/einfacher???

Wenn ja, worauf muss ich achten und wie schicke ich diese HTML dann zum drucker? Kann ich dem Printdocument die Html in etwa so: Printdocument = HTML zuweisen??

Kennst du eventuell einen Link zu einer Anleitung, welche sich mit dieser Problematik beschäfftigt? Meine Bücher geben da leider nichts her...


Mit freundlichen Grüßen
Bitte warten ..
Mitglied: Okeanos85
14.04.2011 um 09:11 Uhr
Hallo,

also man kann auch mit printDocument mehrseitig drucken. der Trick dabei ist: e.HasMorePages=True in der printPage Routine. Dies löst immer wieder das das printPage Ereigniss aus solange bis Du e.HasMorePages=False setzt. Was den Inhalt der Seiten betrifft, den musst Du für jede Seite generieren lassen. Dann würde auch ein PDF herauskommen und nicht 10.
PDF ist wieder so eine Sache. Um PDF zu drucken würde ich Dir [pdfsharp.com diesen Link] zu PDF Sharp mal geben wolen. Ich habe bisher immer einen Bogen darum gemacht mit PDF's zu Drucken, aber Naja musste mal probieren.

HTML zum Drucker bestimmt auch möglich über die Web Browser Komponente in VB. Hast Du schon einmal über eine Drittanbieter Komponente nachgedacht? List & Label 16 ist Da ein wirklich gutes Programm, wenn auch nicht gerade umsonst.

So nun noch ein paar Links die sich damit beschäftigen:

1

2

3


Ich hoffe Du wirst fündig... falls weitere Fragen aufkommen, nur her damit.

MfG

Okeanos85
Bitte warten ..
Mitglied: erik87
14.04.2011 um 21:22 Uhr
Hallo,

danke, danke danke!!!! Das ist denke ich alles was ich wissen muss. Den Rest bekomme ich selber hin. ( denke ich xD )


Ohne deine Links gesichtet zu haben möchte ich dich noch darauf hinweisen das ich keine PDF´s erstellen möchte. Ich habe nur nen PDF-Druckertreiber installiert. Diesen steuer ich ja genauso wie den Drucker an xD.

So, jetzt muss ich die Bilder/Vorlagen programmieren


Mfg.
Bitte warten ..
Mitglied: Okeanos85
15.04.2011 um 08:15 Uhr
Hallo,

Na dann Wünsche ich noch viel Erfolg. Und bei weiteren Fragen ruhig schreiben...

MfG

Okeanos85
Bitte warten ..
Ähnliche Inhalte
Windows 7
Selbstdefiniertes Druckformular wird in Dropdownliste im Programm nicht angezeigt
Frage von Pegasus0211Windows 72 Kommentare

Guten Tag, wir benötigen für den Druck von Klebeetiketten (Endlospapier - Traktoreinzug Epson LQ 850+) eine selbsterstellte Formulargröße. Unter ...

Neue Wissensbeiträge
Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 17 StundenBatch & Shell8 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 19 StundenHumor (lol)6 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 1 TagMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 1 TagSicherheit1 Kommentar

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Heiß diskutierte Inhalte
Windows Server
RDP macht Server schneller???
Frage von JaniDJWindows Server17 Kommentare

Hallo Community, wir betrieben seit geraumer Zeit diverse virtuelle Maschinen und Server mit Windows Server 2012. Leider haben wir ...

Windows 10
Bitlocker nach Verschlüsselung nicht mehr aufrufbar!
gelöst Frage von alexlazaWindows 1013 Kommentare

Hallo, ich besitze ein HP ZBook 17 G4 mit einem Windows 10 Pro Betriebssystem. Bei diesem Problem handelt sich, ...

Off Topic
Fachkräftemangel in Deutschland? - Talentschmiede schreibt alle 2 Tage die gleichen Stellen aus
Frage von Penny.CilinOff Topic12 Kommentare

Hallo, haben wir in Deutschland Fachkräftemangel? Die Talentschmiede schreibt gefühlt alle zwei Tage dieselben Stellen aus. Und das schon ...

Windows Server
Sichere Remote Desktop Verbindung wie?
gelöst Frage von nuss33Windows Server11 Kommentare

Hallo zusammen, eins vorweg: Ich besitze einen privaten Windows Server 2008 R2 zu Hause im Netzwerk er wird nicht ...