如何通过c#.net中的itextsharp使版本兼容

我想通过itextsharp dll(ver 5.0.5)创建一个可下载的pdf文件。 我有四个文本框,由用户填写并点击下载pdf文件。 填充文本粘贴在现有PDF文件的特定位置并使其可下载。 用户可以打开或保存该文件。 我的代码来创建一个文件是:




            using iTextSharp.text;
            using iTextSharp.text.pdf;


            Response.Clear();
            Response.ContentType = "application/pdf";                                                                                        Response.AddHeader("Content-Disposition", "attachment;filename=Patient Refund Request " + txtPatientName.Text + ".pdf");

            string sourceFile = Server.MapPath("~/Forms/Refund.pdf");
            PdfReader reader = new PdfReader(sourceFile);

            iTextSharp.text.Rectangle size = reader.GetPageSizeWithRotation(1);
            Document document = new Document(size);

            PdfWriter writer = PdfWriter.GetInstance(document, Response.OutputStream);
            document.Open();

            PdfContentByte cb = writer.DirectContent;

            BaseFont bf = BaseFont.CreateFont(BaseFont.HELVETICA_BOLD, BaseFont.CP1252, BaseFont.EMBEDDED);
            cb.SetColorFill(BaseColor.DARK_GRAY);
            cb.SetFontAndSize(bf, 12);

            cb.BeginText();
            cb.ShowTextAligned(0, txtDate.Text, 260, 655, 0);
            cb.EndText();

            cb.BeginText();
            cb.ShowTextAligned(0, txtPatientName.Text, 260, 620, 0);
            cb.EndText();

            cb.BeginText();
            cb.ShowTextAligned(0, txtPatDOB.Text, 260, 588, 0);
            cb.EndText();

            cb.BeginText();
            ColumnText ct = new ColumnText(cb);
            ct.SetSimpleColumn(new Phrase(new Chunk(txtDescription.Text, FontFactory.GetFont(FontFactory.HELVETICA, 12, Font.BOLD))), 90, 440, 550, 36, 20, Element.ALIGN_LEFT | Element.ALIGN_TOP);
            ct.Go();
            cb.EndText();

            PdfImportedPage page = writer.GetImportedPage(reader, 1);
            cb.AddTemplate(page, 0, 0);

            document.Close();
            writer.Close();
            reader.Close();


此代码工作正常,打开PDF文件并显示所有内容。 我的问题是,这个pdf只在Adobe Reader 9或更高版本中打开。 它不是以较低版本打开的,例如Adobe Reader 6或7。我已经在Adobe Acrobat 7.0中打开它。 但它不能公开。 我公司的所有用户都有adobe acrobat 6或7。

我怎样才能使这个代码版本兼容,这个可下载的文件可以通过每个版本的最低版本6打开。我希望这些信息足以让你知道。 请给出总和建议或代码。

提前致谢


iText和iTextSharp的默认版本是PDF 1.4 ,它应该与Adobe Acrobat 5兼容,所以我不确定为什么你在6和7有问题。但是如果你想改变版本,你可以这样做办法:

writer.PdfVersion = PdfWriter.VERSION_1_2;

我建议在创建writer对象后立即设置它。

链接地址: http://www.djcxy.com/p/46755.html

上一篇: How to make version compatible of a pdf file through itextsharp in c#.net

下一篇: Inconsistency in file before and after upload to Oracle DB