Ich versuche, ein PDF in SVG zu konvertieren. Diejenige, die ich derzeit verwende, ordnet jedoch einen Pfad für jeden Buchstaben in jedem Textstück zu. Wenn ich also den Text in seiner Quelldatei ändere, sieht er hässlich aus.
Ich habe mich gefragt, was der sauberste PDF-zu-SVG-Konverter ist, hoffentlich einer, der keinen Pfad für seine Textbereiche hat, die einfach keinen benötigen. Wie wir wissen, sind PDF und SVG ziemlich ähnlich, daher gehe ich davon aus, dass es einige gute Konverter gibt.
Antworten:
Inkscape wird von vielen Wikipedia-Nutzern verwendet, um PDF in SVG zu konvertieren.
http://inkscape.org/
Sie haben sogar eine praktische Anleitung dazu!
http://en.wikipedia.org/wiki/Wikipedia:Graphic_Lab/Resources/PDF_conversion_to_SVG#Conversion_with_Inkscape
quelle
--export-text-to-path
.Sie können Inkscape nur in der Befehlszeile verwenden, ohne eine GUI zu öffnen. Versuche dies:
Führen Sie eine vollständige Liste aller Befehlszeilenoptionen aus
inkscape --help
.quelle
Ich verwende derzeit PDFBox, das die Grafikausgabe gut unterstützt. Es gibt eine gute Unterstützung für das Extrahieren der Vektorstriche und auch für das Verwalten von Schriftarten. Es gibt einige gute Tools zum Ausprobieren (z. B. PDFReader wird als Java Graphics2D angezeigt).
Sie können das Grafiktool mit einem SVG-Tool wie Batik abfangen (ich mache das und es gibt eine gute Erfassung).Es gibt keine einfache Möglichkeit, alle PDF-Dateien in SVG zu konvertieren. Dies hängt von der Strategie und den Tools ab, die zum Erstellen der PDF-Dateien verwendet werden. Einige Texte werden in Vektoren konvertiert und können nicht einfach rekonstruiert werden. Sie müssen Vektorschriftarten installieren und nachschlagen.
UPDATE: Ich habe dies jetzt zu einem Paket PDF2SVG entwickelt, das Batik nicht mehr verwendet:
Das wurde auf einer Reihe von PDFs getestet. Es erzeugt eine SVG-Ausgabe bestehend aus
<svg:text>
pro Zeichen<svg:path>
<svg:image>
Spätere Pakete konvertieren (hoffentlich) die Zeichen in laufenden Text und die Pfade zu übergeordneten GrafikobjektenUPDATE: Wir können jetzt laufenden Text aus den SVG-Zeichen neu erstellen. Wir haben auch Diagramme in domänenspezifisches XML konvertiert (z. B. chemische Spektren). Siehe https://bitbucket.org/petermr/svg2xml-dev . Es ist immer noch in Alpha, bewegt sich aber mit einer nützlichen Geschwindigkeit. Jeder kann mitmachen!
AKTUALISIEREN. (@Tim Kelty) Wir arbeiten weiterhin an PDF2SVG und an nachgeschalteten Tools, die (eingeschränkte) Java-OCR und die Erstellung übergeordneter Grafikprimitive (Pfeile, Kästchen usw.) durchführen. Siehe https://bitbucket.org/petermr/ Imageanalyse https://bitbucket.org/petermr/diagramanalyzer https://bitbucket.org/petermr/norma und https://bitbucket.org/petermr/ami-core . Dies ist ein finanziertes Projekt zur Erfassung von 100 Millionen Fakten aus der wissenschaftlichen Literatur (contentmine.org), von denen ein Großteil PDF ist.
quelle
Dieses Thema ist ziemlich alt, aber hier ist eine praktische Lösung, die ich gefunden habe:
http://www.cityinthesky.co.uk/opensource/pdf2svg/
Es bietet ein Tool, pdf2png, das nach der Installation genau die Aufgabe in der Befehlszeile erledigt. Ich habe es bisher mit einwandfreien Ergebnissen getestet, auch mit Bitmaps.
BEARBEITEN: Mein Fehler, dieses Tool konvertiert auch Buchstaben in Pfade, sodass die ursprüngliche Frage nicht beantwortet wird. Es macht jedoch trotzdem einen guten Job und kann für jeden nützlich sein, der nicht beabsichtigt, den Code in der SVG-Datei zu ändern, also werde ich den Beitrag verlassen.
quelle
brew install pdf2svg
.Hier ist der Prozess, den ich letztendlich verwendet habe. Das Hauptwerkzeug, das ich benutzte, war Inkscape, das Text in Ordnung konvertieren konnte.
Separate Seiten: Adobe Acrobat Pro mit JavaScript
Erstellen Sie mithilfe von Adobe Acrobat Pro-Aktionen (früher Stapelverarbeitung) eine benutzerdefinierte Aktion, um PDF-Seiten in separate Dateien zu trennen. Alternativ können Sie PDFs möglicherweise mit GhostScript aufteilen
Acrobat JavaScript-Aktion zum Teilen von Seiten
PDF-zu-SVG-Konvertierung: Inkscape mit Windows CMD-Batchdatei
Unter Verwendung von Windows Cmd wurde eine Batchdatei erstellt, um alle PDF-Dateien in einem Ordner zu durchlaufen und sie in SVG zu konvertieren
Batch-Datei zum Konvertieren von PDF in SVG im aktuellen Ordner
Bereinigungsattribute: Windows Cmd und PowerShell
Mir ist klar, dass es aufgrund möglicher Abweichungen nicht empfehlenswert ist, SVG- oder XML-Tags oder -Attribute manuell zu bearbeiten, und stattdessen einen XML-Parser verwenden sollte. Ich hatte jedoch ein einfaches Problem, bei dem die Strichbreite in einer Zeichnung sehr klein war und in einer anderen die Schriftfamilie falsch identifiziert wurde. Daher habe ich das vorherige Windows-Cmd-Batch-Skript grundlegend geändert, um ein einfaches Suchen und Ersetzen durchzuführen. Die einzigen Änderungen betrafen die Definitionen der Suchzeichenfolgen und das Aufrufen eines PowerShell-Befehls. Der PowerShell-Befehl führt ein Suchen und Ersetzen durch und speichert die geänderte Datei mit einem hinzugefügten Suffix. Ich habe einige andere Referenzen gefunden, die besser zum Parsen oder Ändern der resultierenden SVG-Dateien verwendet werden könnten, wenn eine andere kleinere Bereinigung durchgeführt werden muss.
Änderungen zum manuellen Suchen und Ersetzen von SVG-XML-Daten
powershell -Command "(Get-Content '%~n1.%_work_x1%') | ForEach-Object {$_ -replace 'stroke-width:0.06', 'stroke-width:1'} | ForEach-Object {$_ -replace 'font-family:Times Roman','font-family:Times New Roman'} | Set-Content '%~n1%_work_s2%.%_work_x2%'"
Hoffe das könnte jemandem helfen
Verweise
Adobe Acrobat Pro-Aktionen und JavaScript-Verweise auf separate Seiten
GhostScript verweist auf separate Seiten
Inkscape-Befehlszeilenreferenzen für die Konvertierung von PDF in SVG
Windows Cmd Batch File Script-Referenzen
Forschung zum Ersetzen von XML-Tags / Attributen
quelle
Wenn DVI zu SVG eine Option ist, können Sie mit dvisvgm auch eine DVI-Datei in eine SVG-Datei konvertieren. Dies funktioniert beispielsweise für LaTeX-Formeln (mit Option
--no-fonts
) perfekt :Es gibt auch pdf2svg , das Poppler und Kairo verwendet, um ein PDF in SVG zu konvertieren. Als ich das versuchte, war die SVG perfekt gerendert
inkscape
.quelle
Bash-Skript zum Konvertieren jeder Seite einer PDF-Datei in eine eigene SVG-Datei.
Um in PNG zu generieren, verwenden Sie
--export-png
, etc ...quelle
Ich fand, dass
xfig
das einen exzellenten Job gemacht hat:Es hat viel bessere Arbeit geleistet als inkscape. Eigentlich war es wahrscheinlich pdtoedit, das es getan hat.
quelle
Hier ist die NodeJS REST-API für zwei PDF-Rendering-Skripte. https://github.com/pumppi/pdf2images
Skripte sind: pdf2svg und Imagemagicks konvertieren
quelle