2015-06-04 2 views
0

Я искал часы, пытаясь выяснить, как это сделать без каких-либо успехов.Как сохранить объект system.drawing.graphics в файл PDF с помощью PDFsharp?

Я нашел команду «FromGraphics», которая считывает объект «system.drawing.graphics» в тип XGraphics, но я не уверен, как добавить это в вывод PDF.

Большинство примеров, которые я нахожу, показывают, как делать изображения из существующего файла и сохранять их в формате PDF, но как это сделать с предварительно созданным объектом system.drawing.graphics, который был сделан прагматически?

Пример C# и/или VB.net был бы очень признателен вместо GIF.

E.g. как изменить пример, например следующий, чтобы использовать объект system.drawing.graphics?

string pdfpath = Server.MapPath("PDFs"); 
string imagepath = Server.MapPath("Images"); 
Document doc = new Document(); 
try 
{ 
    PdfWriter.GetInstance(doc, new FileStream(pdfpath + "/Images.pdf", FileMode.Create)); 
    doc.Open(); 

    doc.Add(new Paragraph("GIF")); 
    Image gif = Image.GetInstance(imagepath + "/mikesdotnetting.gif"); 
    doc.Add(gif); 
} 
catch (Exception ex) 
{ 
    //Log error; 
} 
finally 
{ 
    doc.Close(); 
} 
+1

Вы получили хорошие ответы. Просто чтобы убедиться, что вы правильно это понимаете: графический obejct __ не содержит ЛЮБОЙ графики__. Это просто инструмент для рисования пикселей на a) поверхности b) растровый рисунок c) printPage. Или d) в PDF, если вы используете специальный графический объект из своего pdf lib .. – TaW

ответ

2

Краткий пример:

Dim pdfDoc As New PdfDocument 
Dim page As New PdfPage 
pdfDoc.Pages.Add(page) 
Dim xg = XGraphics.FromPdfPage(page) 
'use the xg object to draw on the pdf page 
pdfDoc.Save("path to file") 
+0

Извините, я не понимаю. Если у меня есть готовый объект system.drawing.graphics, который хранится в графике, и я переношу его в объект gfx XGraphics: Например. XGraphics gfx = FromGraphics (графика, размер) Как добавить объект gfx на страницу файла PDF? Использую ли я тип изображения, и если да, то как? –

+0

Вызовите методы на объекте 'xg'. то есть 'xg.DrawString (...)' – OneFineDay

+0

Я сам использую 'XGraphics.FromPdfPage'. Он рисует прямо на странице. – OneFineDay

2

Чтобы ответить на главный вопрос: "Как сохранить объект system.drawing.graphics в файл PDF с помощью PDFsharp?"
Вы не можете этого сделать. Вы можете использовать класс XGraphics для рисования на страницах PDF, на экране, на принтере. Вы можете создать объект XGraphics для страницы PDF или из объекта Graphics. Но все, что было нарисовано на объекте Graphics, кроме подпрограмм XGraphics, не будет отображаться в PDF-файле.

Другой вопрос: «Как изменить пример, подобный приведенному ниже, для использования объекта system.drawing.graphics?»
Вам нужен объект XGraphics для рисования на PDF. Пользователь OneFineDay показал, как его получить. Затем вы используете xg.DrawImage(...) для рисования изображений на странице PDF. Вам не нужен объект Graphics, если вы также не хотите рисовать на других носителях, кроме страниц PDF.

Смежные вопросы