我正在生成PDF我试图在我的PDF页面中插入页脚。其中一部分是陈述页码,例如" Page 2 of 4"。我试图获取文件中的总页数。要获取当前页面,它只是:
doc.PageNumber
所以我已经考虑使用PdfReader来实现这一目标。
private int GetNumOfPDFpages(string fileName)
{
PdfReader pdfReader = new PdfReader(fileName); //Page Header Signature not found
int numOfPages = pdfReader.NumberOfPages;
return numOfPages;
}
以下是调用此函数的代码片段:
private void ExportToPDF()
{
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "PDF Files|*.pdf";
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
string fileName = saveFileDialog.FileName;
int numOfPages = GetNumOfPDFpages(fileName); //Calls my first function
string directory = Path.GetDirectoryName(fileName);
string file = Path.GetFileName(fileName);
Document doc = new Document(iTextSharp.text.PageSize.LETTER, 10, 10, 42, 35);
PdfWriter wri = PdfWriter.GetInstance(doc, new FileStream(Path.Combine(directory, file), FileMode.Create));
wri.PageEvent = new ArdApp.Data.SignalPrototype.PDFattachmentHeader(signal, fileName,numOfPages);
doc.Open();
我找到了一个测试函数here来验证。
private bool IsValidPdf(string filepath)
{
bool Ret = true;
PdfReader reader = null;
try
{
reader = new PdfReader(filepath);
}
catch
{
Ret = false;
}
return Ret;
}
果然,返回值为false;我没有从Word转换或使用HTML。文件长度= 39;
我找到的一个解决方案here用于数字签名pdf,但我不认为这是我正在寻找的。用户只需单击"导出到PDF",为其命名,使用数据生成pdf,然后保存文件。我该怎么办或在哪里看?感谢。