我在c#中有一个面板,其中包含像图片框和datagridview各种组件。 我想创建一个包含整个datagridview和图片框在一起的pdf。 现在,只有datagridview或图片框出现在pdf中。合并在一起是不可能的。我正在使用iTextSharp来创建PDF。 我的代码如下..合并使用itextsharp在c#中创建pdf的各种组件#
string strFileName;
string FontPath = "C:\\WINDOWS\\Fonts\\simsun.ttc,1";
int FontSize = 12;
///
Boolean cc = false;
SaveFileDialog savFile = new SaveFileDialog();
savFile.AddExtension = true;
savFile.DefaultExt = "pdf";
savFile.Filter = "PDF Document|*.pdf|*.pdf|";
savFile.ShowDialog();
if (savFile.FileName != "")
{
strFileName = savFile.FileName;
}
else
{
MessageBox.Show("export stop", "export stop", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
iTextSharp.text.Image jpg= iTextSharp.text.Image.GetInstance(Properties.Resources.templete3, System.Drawing.Imaging.ImageFormat.Png);
jpg.ScaleToFit(750, 850);
jpg.SetAbsolutePosition(0, 0);
// Page site and margin left, right, top, bottom is defined
Document pdfDoc = new Document(PageSize.A4);//, 10f, 10f, 10f, 0f);
//If you want to choose image as background then,
PdfWriter writer = PdfWriter.GetInstance(pdfDoc, new FileStream(strFileName, FileMode.Create));
BaseFont baseFont = BaseFont.CreateFont(FontPath, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
iTextSharp.text.Font font = new iTextSharp.text.Font(baseFont, FontSize);
pdfDoc.Open();
PdfPTable table = new PdfPTable(dataGridView1.Columns.Count);
for (int j = 0; j < dataGridView1.Columns.Count; j++)
{
table.AddCell(new Phrase(datagridview[j, 0].Value.ToString(), font));
}
table.HeaderRows = 1;
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
for (int j = 0; j < dataGridView1.Columns.Count; j++)
{
try
{
table.AddCell(new Phrase(dataGridView1[j, i].Value.ToString(), font));
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
cc = true;
}
}
}
pdfDoc.NewPage();
pdfDoc.Add(jpg);
pdfDoc.Add(table);
pdfDoc.Close();
Process.Start(strFileName);
}
}
面板/数据网格/图像在asp.net应用程序中使用?如果是这样,您可能可以将它们呈现为HTML并将其转换。与这个问题无关,我觉得你很可爱如何将你的PNG命名为'jpg'。 – Nenotlep 2013-03-22 07:28:21
@Nenotlep:不幸的是,我们使用的是c#语言。有没有其他的方式来使用c# – 2013-03-22 10:08:15