Конвертация PDF в HTML в .NET

Обзор

Эта статья объясняет, как конвертировать PDF в HTML с использованием C#. Она охватывает следующие темы.

Формат: HTML

Следующий фрагмент кода также работает с библиотекой Aspose.PDF.Drawing.

Конвертация PDF в HTML

Aspose.PDF для .NET предоставляет множество функций для конвертации различных форматов файлов в документы PDF и конвертации PDF файлов в различные выходные форматы. Aspose.PDF для .NET предоставляет множество функций для конвертации различных форматов файлов в документы PDF и конвертации файлов PDF в различные выходные форматы.

Aspose.PDF для .NET поддерживает функции для конвертации PDF-файла в HTML. Основные задачи, которые вы можете выполнить с помощью библиотеки Aspose.PDF, перечислены:

  • конвертировать PDF в HTML;
  • разделение вывода на многостраничный HTML;
  • указание папки для сохранения файлов SVG;
  • сжатие изображений SVG во время конвертации;
  • указание папки для изображений;
  • создание последующих файлов только с содержимым тела;
  • прозрачное отображение текста;
  • рендеринг слоев документа PDF.

Aspose.PDF для .NET предоставляет двухстрочный код для трансформации исходного PDF-файла в HTML. Aspose.PDF для .NET предоставляет две строки кода для преобразования исходного PDF файла в HTML.

Шаги: Конвертация PDF в HTML в C#

  1. Создайте экземпляр объекта Document с исходным PDF документом.
  2. Сохраните его в формат SaveFormat.Html вызвав метод Document.Save().
// Для полных примеров и файлов данных, пожалуйста, перейдите на https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_AsposePdf_DocumentConversion();

// Откройте исходный PDF документ
Document pdfDocument = new Document(dataDir + "PDFToHTML.pdf");

// Сохраните файл в формате документа MS
pdfDocument.Save(dataDir + "output_out.html", SaveFormat.Html);

Разделение выходных данных на многостраничный HTML

При конвертации большого PDF файла с несколькими страницами в формат HTML, результатом является одна HTML страница. При конвертации большого PDF-файла с несколькими страницами в формат HTML, результат появляется в виде одной HTML-страницы.

// Для полных примеров и файлов данных, пожалуйста, перейдите по ссылке https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Путь к директории с документами.
string dataDir = RunExamples.GetDataDir_AsposePdf_DocumentConversion();

// Открыть исходный PDF-документ
Document pdfDocument = new Document(dataDir + "PDFToHTML.pdf");

// Создать объект настроек сохранения HTML
HtmlSaveOptions htmlOptions = new HtmlSaveOptions();

// Указать разделение выходного файла на несколько страниц
htmlOptions.SplitIntoPages = true;

// Сохранить документ
pdfDocument.Save(@"MultiPageHTML_out.html", htmlOptions);

Указать папку для сохранения SVG-файлов

Во время конвертации PDF в HTML можно указать папку, в которую должны быть сохранены SVG-изображения. Во время конвертации PDF в HTML возможно указать папку для сохранения изображений SVG.

// Загрузка файла PDF
Document doc = new Document(dataDir + "PDFToHTML.pdf");

// Создание объекта опций сохранения HTML
HtmlSaveOptions newOptions = new HtmlSaveOptions();

// Указание папки, куда сохранять изображения SVG во время конвертации PDF в HTML
newOptions.SpecialFolderForSvgImages = dataDir;

// Сохранение результирующего файла
doc.Save(dataDir + "SaveSVGFiles_out.html", newOptions);

Сжатие изображений SVG во время конвертации

Для сжатия изображений SVG во время конвертации PDF в HTML, пожалуйста, используйте следующий код:

// Для полных примеров и файлов данных, пожалуйста, перейдите по ссылке https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Создание HtmlSaveOption с проверенной функцией
HtmlSaveOptions newOptions = new HtmlSaveOptions();

// Сжатие изображений SVG, если таковые имеются
newOptions.CompressSvgGraphicsIfAny = true;

Указание папки для изображений

Мы также можем указать папку, в которую будут сохраняться изображения во время конвертации PDF в HTML: Мы также можем указать папку, в которую будут сохраняться изображения при конвертации PDF в HTML:

// Для полных примеров и файлов данных, пожалуйста, перейдите по ссылке https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Создайте HtmlSaveOption с проверенной функцией
HtmlSaveOptions newOptions = new HtmlSaveOptions();

// Укажите отдельную папку для сохранения изображений
newOptions.SpecialFolderForAllImages = dataDir;

Создание последующих файлов только с содержимым тега Body

Недавно нам поступил запрос на внедрение функции, при которой файлы PDF конвертируются в HTML, и пользователь может получать содержимое тега <body> для каждой страницы. Это приведет к созданию одного файла с CSS, деталями <html>, <head> и всех страниц в других файлах только с содержимым <body>.

Для удовлетворения этого требования было введено новое свойство, HtmlMarkupGenerationMode, в класс HtmlSaveOptions.

С помощью следующего простого фрагмента кода вы можете разделить выходной HTML на страницы. С помощью следующего простого фрагмента кода вы можете разделить выходной HTML на страницы.

// Путь к директории с документами.
string dataDir = RunExamples.GetDataDir_AsposePdf_DocumentConversion();

Document doc = new Document(dataDir + "PDFToHTML.pdf");
           
HtmlSaveOptions options = new HtmlSaveOptions();
// Это проверенная настройка
options.HtmlMarkupGenerationMode = HtmlSaveOptions.HtmlMarkupGenerationModes.WriteOnlyBodyContent;
options.SplitIntoPages = true;

doc.Save(dataDir + "CreateSubsequentFiles_out.html", options);

Отображение прозрачного текста

В случае, если исходный/входной файл PDF содержит прозрачные тексты, затененные передними изображениями, могут возникнуть проблемы с рендерингом текста. Поэтому для решения таких сценариев можно использовать свойства SaveShadowedTextsAsTransparentTexts и SaveTransparentTexts.

// Для полных примеров и файлов данных, пожалуйста, перейдите на https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Путь к директории с документами.
string dataDir = RunExamples.GetDataDir_AsposePdf_DocumentConversion();

Document doc = new Document(dataDir + "PDFToHTML.pdf");
HtmlSaveOptions htmlOptions = new HtmlSaveOptions();
htmlOptions.SaveShadowedTextsAsTransparentTexts = true;
htmlOptions.SaveTransparentTexts = true;
doc.Save(dataDir + "TransparentTextRendering_out.html", htmlOptions);

Отрисовка слоёв PDF-документа

Мы можем отрисовывать слои PDF-документа в отдельных элементах типа слоя во время конвертации PDF в HTML:

// Для полных примеров и файлов данных, пожалуйста, перейдите на https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Путь к директории с документами.
string dataDir = RunExamples.GetDataDir_AsposePdf_DocumentConversion();

Document doc = new Document(dataDir + "PDFToHTML.pdf");
// Создаем объект настроек сохранения HTML
HtmlSaveOptions htmlOptions = new HtmlSaveOptions();

// Указываем отрисовку слоёв PDF-документа отдельно в выходном HTML
htmlOptions.ConvertMarkedContentToLayers = true;

// Сохраняем документ
doc.Save(dataDir + "LayersRendering_out.html", htmlOptions);

Смотрите также

Эта статья также охватывает следующие темы. Коды такие же, как выше.

Формат: HTML