PDF в SVG – онлайн конвертер для быстрого и удобного перевода
PDF (Portable Document Format) и SVG (Scalable Vector Graphics) представляют собой различные форматы для изображений. Оба формата могут содержать векторные данные, что означает, что они могут масштабироваться без потери качества. Однако, PDF является более универсальным форматом, который может содержать как векторные, так и растровые данные, в то время как SVG предназначен только для векторных данных.
Чтобы преобразовать PDF в SVG, можно воспользоваться различными инструментами и библиотеками. Одной из таких библиотек является Apache PDFBox, которая позволяет работать с PDF-файлами на языке Java. С помощью этой библиотеки можно извлечь векторные данные из PDF-файла и сохранить их в формате SVG.
Пример кода на Java для преобразования PDF в SVG с помощью Apache PDFBox:
java
import java.io.File;
import java.io.IOException;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.PDFRenderer;
import org.apache.batik.dom.svg.SVGDOMImplementation;
import org.apache.batik.svggen.SVGGeneratorContext;
import org.apache.batik.svggen.SVGGraphics2D;
import org.w3c.dom.Document;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
public class PdfToSvg {
public static void main(String[] args) throws IOException {
String pdfFile = "sample.pdf";
String svgFile = "sample.svg";
PDDocument document = PDDocument.load(new File(pdfFile));
PDFRenderer renderer = new PDFRenderer(document);
int pageIndex = 0; // выбираем первую страницу
Document svgDocument = SVGDOMImplementation.getDOMImplementation().createDocument(SVGDOMImplementation.SVG_NAMESPACE_URI, "svg", null);
SVGGeneratorContext svgContext = SVGGeneratorContext.createDefault(svgDocument);
SVGGraphics2D svgGraphics = new SVGGraphics2D(svgContext, false);
renderer.renderPageToGraphics(pageIndex, svgGraphics);
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(svgGraphics.getDOMFactory().getRoot());
StreamResult result = new StreamResult(new File(svgFile));
transformer.transform(source, result);
document.close();
}
}
В этом примере мы загружаем PDF-файл, выбираем первую страницу и рендерим ее в векторный формат SVG. Затем мы создаем документ SVG, создаем SVGGraphics2D для рисования графики в SVG и применяем его к PDF-странице. После этого мы создаем трансформер, который позволяет сохранить SVG документ в файл. Наконец, мы закрываем PDF документ и завершаем процесс преобразования.