我正在使用iTextSharp生成PDF文档。我能够创建并添加一个表。现在我想在PDF中添加一些普通文本。我怎么做?我在网上看了他们建议使用块但是它不起作用:
Chunk c1 = new Chunk("A chunk represents an isolated string. ");
这就是我添加表格的方式:
private byte[] CreatePDFFile(StudentJournalAdd studentjournal, SearchResult<JournalAttendanceStatus> StatusList, string studentName)
{
var normalFont = FontFactory.GetFont(FontFactory.HELVETICA, 12);
var boldFont = FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 12);
string Details = string.Empty;
int icount = 0;
bool bflag = false;
PdfPTable table = new PdfPTable(3);
table.TotalWidth = 550f;
table.LockedWidth = true;
float[] widths = new float[] { 10f, 20f, 10f };
table.SetWidths(widths);
table.HorizontalAlignment = 1;
table.SpacingBefore = 20f;
table.SpacingAfter = 30f;
table.DefaultCell.PaddingTop = 2f;
table.DefaultCell.PaddingBottom = 2f;
//PdfPCell cellHeading = new PdfPCell(new Phrase("AdminNo - " + studentjournal.StudentJournaldtls.AdminNo + " (WeekNo) - " + studentjournal.StudentJournaldtls.WeekNo + "\n\n", boldFont));
PdfPCell cellHeading = new PdfPCell(new Phrase("Temasek Polytechnic - Student Internship Programme Journal\n\n " + studentName + " (" + studentjournal.StudentJournaldtls.AdminNo + ")\n\n Week No: " + studentjournal.StudentJournaldtls.WeekNo + "\n\n" + "DAILY/WEEKLY SUMMARY OF TASKS" + "\n\n", boldFont));
cellHeading.Colspan = 3;
cellHeading.Rowspan = 2;
cellHeading.Border = 0;
cellHeading.HorizontalAlignment = 1;
cellHeading.VerticalAlignment = Element.ALIGN_MIDDLE;
table.AddCell(cellHeading);
PdfPCell cell0 = new PdfPCell(new Phrase("Day", boldFont));
cell0.PaddingBottom = 10f;
cell0.VerticalAlignment = Element.ALIGN_CENTER;
cell0.HorizontalAlignment = Element.ALIGN_CENTER;
table.AddCell(cell0);
PdfPCell cell1 = new PdfPCell(new Phrase("Task Assigned", boldFont));
cell1.PaddingBottom = 10f;
cell1.VerticalAlignment = Element.ALIGN_CENTER;
cell1.HorizontalAlignment = Element.ALIGN_CENTER;
table.AddCell(cell1);
PdfPCell cell2 = new PdfPCell(new Phrase("Attendance", boldFont));
cell2.PaddingBottom = 10f;
cell2.VerticalAlignment = Element.ALIGN_CENTER;
cell2.HorizontalAlignment = Element.ALIGN_CENTER;
table.AddCell(cell2);
}
答案 0 :(得分:2)
PdfPTable
和Chunk
只是可以添加到iTextSharp中的Document
的两个元素。请看the official web site。例如,如果您浏览&#34; iText in Action - Second Edition&#34;书,你会找到a couple of hundreds of examples。在每个示例页面的底部,您可以找到每个示例的C#版本的链接。例如:
// step 1
using (Document document = new Document()) {
// step 2
PdfWriter.GetInstance(document, stream);
// step 3
document.Open();
// step 4
document.Add(new Paragraph("Hello World!"));
}
在这个简单的Hello World示例中,我们添加了Paragraph
。这已经回答了您的问题:&#34;如何将一些普通文本添加到PDF?&#34;
在chapter 2中,您会发现其他元素,例如Anchor
,List
(和ListItem
),等等。
然而,您似乎是使用iText的新手。在这种情况下,为什么不开始使用最新的iText版本?我们刚从头开始重写iText,我们正在推出一个全新的API。
您可以在iText 7: Building Blocks教程中找到更详细的新类概述。
答案 1 :(得分:1)
您可以在 iText in Action - Second Edition here on the itextpdf site中找到所有示例。
首先,您会看到示例的Java / iText版本,但在相应页面的末尾,您还可以找到C#/ iTextSharp版本的链接。
例如,在chapter 1 examples的页面上,您将找到指向此简单Hello World程序的链接,将一些正常文本添加到PDF :
using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using iTextSharp.text;
using iTextSharp.text.pdf;
namespace kuujinbo.iTextInAction2Ed.Chapter01 {
public class HelloWorld : IWriter {
// ===========================================================================
public void Write(Stream stream) {
// step 1
using (Document document = new Document()) {
// step 2
PdfWriter.GetInstance(document, stream);
// step 3
document.Open();
// step 4
document.Add(new Paragraph("Hello World!"));
}
}
// ===========================================================================
}
}
因此,简而言之,
现在我想在PDF中添加一些普通文本。我该怎么做?
您只需创建Paragraph
并将其添加到Document
实例。
有人说,因为你是iText的新手,为什么不开始使用当前的iText 7 for .Net?