我很新使用iTextSharp生成PDF。我有下面的代碼,將文本從我的表單到PDF輸出。我正在使用短語& ColumnText將文本從特定文本框放到我的pdf輸出中。我將變量以及文本框的text屬性作爲Phrase字符串綁定在一起,但它將兩組相同的文本放在彼此的頂部(屏幕截圖)。 iTextSharp短語字符串翻倍pdf輸出
string oldFile = Path.GetTempPath() + "invoice.pdf";
string newFile = Path.GetTempPath() + "NewInvoice.pdf";
PdfReader reader = new PdfReader(oldFile);
iTextSharp.text.Rectangle size = reader.GetPageSize(1);
Document doc = new Document(size);
FileStream fs = new FileStream(newFile, FileMode.Create, FileAccess.Write, FileShare.ReadWrite);
PdfWriter writer = PdfWriter.GetInstance(doc, fs);
doc.Open();
PdfContentByte cb = writer.DirectContent;
BaseFont bf = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, true);
cb.SetColorFill(BaseColor.BLACK);
cb.SetFontAndSize(bf, 12);
cb.BeginText();
cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, invoiceDate, 480, 603, 0);
cb.EndText();
PdfImportedPage page = writer.GetImportedPage(reader, 1);
cb.AddTemplate(page, 0, 0);
ColumnText ct = new ColumnText(cb);
Phrase phrase = new Phrase(textBox1.Text);
ct.SetSimpleColumn(phrase, 65, 375, 540, 300, 16, Element.ALIGN_LEFT);
ct.Go();
doc.Close();
fs.Close();
writer.Close();
reader.Close();
Process.Start(newFile);
如果我給你一個字符串(字符串不管=「一些文字在這裏......」),並把此一語中的字符串(..新詞(什麼);它工作正常
感謝您的回覆。從我通過實驗學到的知識和一般的網絡知識來看,爲了擁有一個有控制權的pdf(接受文本),我需要購買一塊軟件(Adobe專業版等)來完成這個任務,爲我提供一個選擇。所以我在Illustrator中創建了一個。所以我走了一條定位一切的路線。我檢查了保存在我的默認目錄中的「invoice.pdf」,它沒有這個文本,所以它不能複製它。我不明白爲什麼它在我直接給它分配文本時起作用。蜇任何=「什麼」; – KFP 2013-04-11 15:13:44
那麼,Illustator也不是免費的,是嗎?您可以使用Open Office輕鬆創建表單。 Open Office可以免費下載。你可以找到一個例子來解釋如何用我提到的章節6.3.5中的這種控件來創建一個PDF。 – 2013-04-11 15:21:00
另外我不明白你的意思,當你說「我不明白爲什麼它的作品,當我直接給它分配文本」。直接向什麼?直接如何? – 2013-04-11 15:22:16