iTextSharp PDF页数"未找到PDF标题签名"

时间:2015-09-25 12:48:23

标签: c# pdf itextsharp

我正在生成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,然后保存文件。我该怎么办或在哪里看?感谢。

0 个答案:

没有答案