Разделить файл PDF на файлы изображений с помощью C # 2008? - PullRequest
3 голосов
/ 15 сентября 2009

В моем PDF у меня есть страница, содержащая 10 изображений.

Я хочу разделить файл PDF на 10 отдельных файлов изображений и сохранить их в отдельной папке.

Пожалуйста, дайте мне идею или пример решения.

Я использую c # 2008.

Ответы [ 2 ]

1 голос
/ 08 сентября 2011

Я предполагаю, что вы хотите извлечь изображения с определенной страницы в файл PDF и сохранить эти изображения в отдельных файлах.

Если я прав, то вы можете взглянуть на Docotic.Pdf library . Вот пример, который показывает, как извлечь изображения из страницы PDF в указанную папку:

static void ExtractImagesFromPdfPageIntoFolder()
{
    string pathToPdf = "";
    int pageIndex = 0;
    string outputFolder = "";
    using (PdfDocument pdf = new PdfDocument(pathToPdf))
    {
        for (int i = 0; i < pdf.Pages[pageIndex].Images.Count; i++)
        {
            string imageName = string.Format("image{0}", i);
            string outputName = Path.Combine(outputFolder, imageName);
            string savedPath = pdf.Pages[pageIndex].Images[i].Save(outputName);
        }
    }
}

Отказ от ответственности: я работаю в Bit Miracle, продавце библиотеки.

1 голос
/ 12 декабря 2010

Я не знаю, актуально ли это через год, но я сам сделал это недавно, поэтому решил, что все равно отвечу.

Во-первых, вам понадобится Ghostscript (http://sourceforge.net/projects/ghostscript/) почтенный движок синтаксического анализа / рендеринга / преобразования PS / PDF. После установки перейдите на %PROGRAMDATA\gs\bin\ (или x86, если вы используете систему x64) и возьмите gsdll32.dll и скопируйте его в папку / bin.

Затем вам понадобится библиотека PDF с закрытым исходным кодом, которая называется Super PDF2Image Converter (http://www.softwaresigloxxi.com/downloading_superPDF2ImageConverter.html),, извлеките Pdf2Image.dll из файла .zip и скопируйте его в папку / bin.

Вот краткий пример того, как преобразовать несколько страниц PDF в изображения с использованием этих двух библиотек:

using Pdf2Image;

-

  const string _filename = "/3.pdf";
  // Instantiate the component
  var p2i = new Pdf2ImageConverter(_filename);

  // Get page count of a PDF file
  int pages = p2i.GetPageCount();
  Response.Write(pages);

  // loops through each page
  for (int i = 1; i < pages; i++)
  {
   // Get size of any page
   int width, height;
   p2i.GetPageSize(i, out width, out height);

   // converts the page to PNG format (returns bitmap object with original size)
   var pdfimage = p2i.GetImage(i, width, Pdf2ImageFormat.PNG);
   pdfimage.Save(string.Format("/{0}.png",i));
   pdfimage.Dispose();
  }

В зависимости от вашего оборудования, это не займет больше пары секунд на страницу.

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