Как сделать версию совместимой PDF-файла через itextsharp в c # .net - PullRequest
0 голосов
/ 10 ноября 2011

Я хочу создать загружаемый файл PDF через dll itextsharp (версия 5.0.5). У меня есть четыре текстовых поля, которые заполняется пользователем, и нажмите на кнопку «Загрузить файл 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. Надеюсь, этой информации достаточно для вашего знания. , Пожалуйста, укажите сумму предложения или код.

Заранее спасибо.

1 Ответ

1 голос
/ 10 ноября 2011

Версия по умолчанию для iText и iTextSharp - PDF 1.4, которая должна быть совместима с Adobe Acrobat 5 и выше, поэтому я не уверен, почему у вас проблемы с 6 и 7. Но если вы хотите изменить версию, вы можно сделать так:

writer.PdfVersion = PdfWriter.VERSION_1_2;

Я бы порекомендовал установить это сразу после создания объекта writer.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...