2016-10-03 99 views
0

C#で書式設定されたテキストを印刷したい。PDFsharpとMigraDocを印刷専用に使用する(PDFを作成しない)

こんにちは私はマルチライン部分的にフォーマットされたテキスト午前:テキストは、このようなものです。 には、C#(winforms)を使用してを印刷します。私はمرابههیچبدادیومنهنوزبرآنم/کهازوجودتوموییبهعالمینفروشمなど....

私はC#System.Drawing印刷を試してみましたが、それは非常に困難だったようないくつかのUnicodeテキストが含まれているかもしれませんし、非常に厄介なので、私は検索し、PDFsharpは、マルチスタイルのテキストを描画し、そこからPDFを作成することができます。最初のページでは、

があります。PDFsharpは、.NET言語から簡単にPDF文書を作成して処理するオープンソース.NETライブラリです。同じルーチンは、画面上に描画、PDF文書を作成するために使用することができ、図面、または任意のプリンタに出力を送信

が、私はどのように表示されないのですか? 私はPDFファイルを作成して印刷したくありません。また、私は使用しないpagePreviewを作りたくありません。

XGraphicsなどから直接印刷する方法はありますか?どうやって?

(私は破産ですので、自由:(、)より良い代替手段はありPDFsharpには?

(簡単な「HelloWorldの」サンプルは非常にいいだろう)

答えて

1

あなたからXGraphicsオブジェクトを作成することができますGraphicsオブジェクト:あなたは、プリンタのためのGraphicsオブジェクトを持っている場合

XGraphics gfx = XGraphics.FromGraphics(graphics, size); 

だから、あなたは印刷のためPDFsharpコードを使用することができ、それは彼のものとすることができる場合

わかりません。グラフィックスオブジェクトを直接印刷に使用することができます。
XGraphicsを使用することは、PDFと印刷、またはPDFとスクリーンプレビューが必要な場合に意味があります。

+0

おかげでたくさん。それは私を助けた。私は質問で指摘したように、私は 'Graphics'オブジェクトで複数の書式設定を行うことができないので、意味があります。 –

0

user-241.007答えが正しい(正解として受け付けました)。しかし、私はこの回答を投稿しています(私は質問で質問した通りです)。

以下のコードでは、質問の同じテキストがフォームのOnPaintイベントで描画されています。

private void Form1_Paint(object sender, PaintEventArgs e) 
{ 
    Document document = new Document(); 
    // Add a section to the document 
    Section section = document.AddSection(); 

    // Add a paragraph to the section 
    Paragraph paragraph = section.AddParagraph(); 
    paragraph.Format.Font.Size = 14; 
    // Add some text to the paragraph 
    paragraph.AddFormattedText("Hi i am a"); 
    paragraph.AddFormattedText(" Multi-line ",TextFormat.Bold); 
    FormattedText ft = paragraph.AddFormattedText("partially formatted"); 
    ft.Italic = true; 
    paragraph.AddFormattedText(" text. I want to be printed using C#(winforms). I might contain some unicode text like مرا به هیچ بدادی و من هنوز بر آنم/ که از وجود تو مویی به عالمی نفروشم and so on.... "); 
    paragraph = section.AddParagraph(); 
    //here is the important part, linking Graphics to XGraphics. Graphics can be used in drawing on form, or in printing 
    XGraphics xgf = XGraphics.FromGraphics(e.Graphics, new XSize(0, 1000)); 
    DocumentRenderer docRenderer = new DocumentRenderer(document); 
    docRenderer.PrepareDocument(); 
    //rendering first page to Xgraphics 
    docRenderer.RenderPage(xgf, 1); 
} 

output of code

関連する問題