Создать PDF из набора JPEG - PullRequest
6 голосов
/ 14 марта 2011

У меня есть набор JPEG на моем сервере одинакового размера.Могу ли я преобразовать это в сторону файлового сервера PDF?

Ответы [ 3 ]

3 голосов
/ 14 марта 2011

Я бы попробовал использовать http://www.pdfsharp.net/

Что-то вроде

PdfPage page = outputDocument.AddPage();
page.Size = PdfSharp.PageSize.A4;
XGraphics gfx = XGraphics.FromPdfPage(page);
XImage image = XImage.FromFile("MyJPGFileXXX.jpg");
gfx.DrawImage(image, 0, 0);
2 голосов
/ 15 марта 2011

Я использую iText для этого требования

Document document = new Document();
PdfWriter.getInstance(document, new FileOutputStream(yourOutFile));
document.open();

for(int i=0;i<numberOfImages;i++){
  Image image1 = Image.getInstance("myImage"+i+".jpg");
  image1.scalePercent(23f);
  document.newPage();
  document.add(image1);
}
document.close();
2 голосов
/ 14 марта 2011

DotImage имеет встроенные классы для этого. Если все ваши JPEG-файлы находятся в одной папке, вы можете сделать это:

FileSystemImageSource source = new FileSystemImageSource(pathToDirectory, "*.jpg", true);
PdfEncoder encoder = new PdfEncoder();
using (FileStream outstm = new FileStream(outputPath, FileMode.Create)) {
    encoder.Save(outstm, source, null);
}

, который будет передавать все изображения, заканчивающиеся на .jpg, в выходной файл PDF. Каждая страница будет соответствовать размеру изображения (это можно установить). Насколько я знаю, нет практического ограничения на количество страниц, которые вы можете кодировать (я уверен, что вы превысите лимит PDF, прежде чем исчерпаете свою кучу памяти). В ходе тестирования я пропустил сотни изображений без нагрузки на машину.

Сжатие можно контролировать с помощью события, если требуется более точное управление (т. Е. Уровень сжатия JPEG или использование Flate или JPEG 2000). Цветовые профили будут включены, если они присутствуют в формате JPEG, и, если вы хотите PDF / A-1b, это также будет сделано. Также есть некоторая базовая поддержка для настройки оглавления, если хотите.

Отказ от ответственности - я работаю в Atalasoft и лично написал классы FileSystemImageSource и PdfEncoder (а также почти все базовые инструменты генерации PDF).

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