[C#] PaperSize den PrinterSettings übergeben

DasBöse

Mitglied

Hallo,

ich habe folgendes Problem:

wenn ich versuche:

[ps = PrinterSettings]

C#:
ps.DefaultPageSettings.PaperSize.Height = 250 //spielt keine Rolle hier wird nur ein "int" übergeben

bekomme ich den fehler das ich PaperSize benutzderfiniert machen müsste.

Gut, wenn ich dann schreibe:

C#:
PaperSize paperSize = new PaperSize();

paperSize.Height = 250;
paperSize.Width = 50;

funktioniert das auch. Nur wie übergebe ich jetzt den PrinterSettings mein paperSize?

(Ich muss das machen, da ich ein PDF Control habe in dem ein Dialog mit bestimmten Settings aufgerufen wird und in diesem Dialog eben nur PrinterSettings übergeben werden können)

Das sind dann in etwa so aus:

C#:
vwDocument.OpenPdfFile(Convert.ToString(ps.PrintFileName));
vwDocument.PrintDocumentWithSettings(ps); //eben dieser Dialog kann nur PrinterSettings [und PageSettings die bringen mich aber nicht weiter, oder?]
vwDocument.ClosePdfFile();

Ich hoffe jemand weiß einen Lösungsansatz oder kann mir dabei helfen.

[Ich weiß das ganze verwirrt ein bisschen. Bei Unklarheiten, bitte Fragen!]
 
Zuletzt bearbeitet von einem Moderator:
Hi

Wenn ich dich richtig verstanden hab, dann probier doch mal
C#:
ps.PaperSize = paperSize; // ps ist wie bei dir ein PageSettings-Instanz
 
Hi

Wenn ich dich richtig verstanden hab, dann probier doch mal
C#:
ps.PaperSize = paperSize; // ps ist wie bei dir ein PageSettings-Instanz

hmm wenn ich das mache (übrigens heißt es PaperSizes [mein Fehler]) bekomme ich den Fehler das nichts zuweisen kann, da schreibgeschützt.

Hast du oder noch irgendjemand ne idee?
 
Oh, auch mein Fehler, du hast von den PrinterSettings gesprochen. :-(

Falls es das gleiche Control ist wie auf dieser Seite (http://www.aspose.com/Community/Forums/post/90317.aspx), gibt es eine Überladung der Methode PrintDocumentWithSettings(), bei der du auch PageSettings übergeben kannst. Bei denen kannst du die genaue Größe angeben.
In der PrinterSettings-Klasse liefert die Collection nur die möglichen wider, die (vom Drucker) unterstützt werden.
 
jop genau das Control mein ich. Wenn ich das mit den PageSettings löse, habe ich genau das selbe Problem wie jetzt. Ich hab das jetzt so gelöst und da funktioniert auch bis jetzt:

C#:
PrinterSettings ps = new PrinterSettings();
PaperSize paperSize = new PaperSize();

paperSize.Height = Convert.ToInt32(Aspose.Pdf.PageSize.A4Height);
paperSize.Width= Convert.ToInt32(Aspose.Pdf.PageSize.A4Width);
ps.DefaultPageSettings.PaperSize = paperSize;

jetzt habe ich nur noch das Problem das die Seitenränder abgeschnitten werden. Ich kann über Margins.Left usw. zwar einen Wert zuweisen doch verändert sich nichts. Warum?
 
Zuletzt bearbeitet von einem Moderator:
Zurück