我正在发布一个Windows表单应用程序,它允许用户保存他们输入的信息的PDF。 PDF包含2张图片(logo.png& name.png)。我目前正将这些图片存储在我的bin> Debug文件夹中。
我的问题是,如果我发布该程序,PDF是否仍然可以访问这些图像,还是需要将它们放在另一个文件夹中才能正确生成PDF?
private void saveAsToolStripMenuItem_Click(object sender, EventArgs e)
{
SaveFileDialog dlg = new SaveFileDialog();
dlg.Filter = "New (*.pdf)|*.pdf|All Files (*.*|*.*";
dlg.AddExtension = true;
dlg.DefaultExt = ".pdf";
dlg.FilterIndex = 1;
if (dlg.ShowDialog() == DialogResult.OK)
{
Document doc = new Document(iTextSharp.text.PageSize.LETTER, 10, 10, 42, 35);
PdfWriter wri = PdfWriter.GetInstance(doc, new FileStream(dlg.FileName.ToString(), FileMode.Create));
doc.Open();//Open Document to write
iTextSharp.text.Image logo = iTextSharp.text.Image.GetInstance("logo.png");
logo.ScalePercent(45f);
logo.SetAbsolutePosition(doc.PageSize.Width - 105f - 72f, doc.PageSize.Height - -15f - 216.6f);
doc.Add(logo);
iTextSharp.text.Image name = iTextSharp.text.Image.GetInstance("name.png");
name.ScalePercent(95f);
name.SetAbsolutePosition(doc.PageSize.Width - 500f - 72f, doc.PageSize.Height - -55f - 216.6f);
doc.Add(name);
var titleFont = FontFactory.GetFont("Times New Roman", 24);
var headerFont = FontFactory.GetFont("Times New Roman", 20);
var bodyFont = FontFactory.GetFont("Times New Roman", 16);
var fineFont = FontFactory.GetFont("Times New Roman", 8);
//Write pdf content
doc.Close();//Close document
答案 0 :(得分:2)
我只是将图像作为资源添加到项目中,这会将其烘焙到DLL / EXE本身。右键单击项目,选择“属性”,然后单击“资源”。单击添加资源,然后单击添加现有文件。选择您的图像并选择重命名。然后在您的代码中,您可以使用其完全限定名称访问它:
var img = WindowsFormsApplication1.Properties.Resources.logo;
var logo = iTextSharp.text.Image.GetInstance(img, BaseColor.WHITE);
doc.Add(logo);
将WindowsFormsApplication1
替换为您为项目设置的任何命名空间。