Ich versuche, docx- Dateien auf meinem Ubuntu-Server über die Befehlszeile in pdf-Dateien umzuwandeln , aber keiner der bisher getesteten Konverter scheint Word 2007/2010/2013-Dateien korrekt umzuwandeln.
Anscheinend können Online-Konverter es problemlos verwalten, Webdienste sind jedoch keine Option, da die Dateien vertrauliche Daten enthalten. Für Tests verwende ich diese Word 2007-Datei, da sie einige wichtige Elemente enthält (Formeln, Vektorgrafiken, Bilder, Listen usw.). Ich habe die folgenden Tools getestet (teilweise aus diesem Beitrag ):
lowriter
(LibreOffice Writer) - falsche Ausgabe (der Kreis soll sich auf der letzten Seite befinden, nicht auf der ersten)
unoconv
- Wie LibreOffice, da es keinen eigenen Konverter verwendet. Das Konvertieren zuerst nach odt und dann nach pdf bringt die Datei durcheinander.
abiword --to=pdf filename.doc
- falsch und unvollständig (viele Elemente fehlen):
OpenOffice Writer - gleiches Ergebnis wie bei abiword
wvPDF
- Absturz mit folgender Fehlermeldung:
~ $ wvPDF 2007_Office_DocEncryption.docx test.pdf
Aktuelles Verzeichnis: / home / webmt / dev / test /
Einige Probleme beim Laufenlassen von Latex.
Suchen Sie in test.log nach Fehlern
Auch weiterhin...
Die Konvertierung in dvi ist fehlgeschlagen
Gibt es eine Möglichkeit, docx-Dateien unter Linux korrekt in PDF zu konvertieren? Es würde mir auch helfen, wenn ich wüsste, dass es für jemanden mit einem der Programme funktioniert, die ich bereits erwähnt habe. Ich werde ein Kopfgeld erheben, sobald SE es mir erlaubt.
ps Ich benutze Ubuntu Server 12.04
Fazit :
Ich musste zu dem Schluss kommen, dass es für mich derzeit kein zuverlässiges Tool gibt, das mit neuen MS Word-Formaten und all seinen Elementen unter Ubuntu zusammenarbeitet und eine Eins-zu-Eins-Kopie von docx-Dateien erstellt. Keines der von mir getesteten Tools konnte die Beispieldatei ordnungsgemäß konvertieren. Da ich mit sehr unterschiedlichen Dokumentversionen / -inhalten konfrontiert werde und die Ausgabequalität eine der höchsten Prioritäten hat, werde ich die Konvertierungen mithilfe von VB-Makros in Word auf einem Windows-Server durchführen, der mit meinem Linux verbunden ist.
Ich werde den Beitrag so einstellen, dass die besten Ergebnisse als akzeptierte Antwort erzielt werden. Das Kopfgeld war jedoch für eine Lösung mit absolut korrekter Umsetzung gedacht. Nochmals vielen Dank an alle.
quelle
Antworten:
Diese Antwort besteht alle Tests, aber das Flussdiagramm in Ihrem Testdokument.
Warum ist das besser als andere Methoden bisher vermuten lassen?
Ich habe die anderen bisher vorgeschlagenen Methoden (insbesondere
oowriter
undebook-convert
) getestet , aber sie bestehen weniger Tests als diese Methode. Dieebook-convert
Methode entfernt die Ränder und einen Teil der Texte aus dem Dokument.Diese Methode liefert sogar bessere Ergebnisse als ein professioneller Konverter als rainbowpdf .
Ich habe auch versucht, es in HTML umzuwandeln, aber die Zeichnung mit dem Quadrat im Kreis und das Flussdiagramm sind falsch.
Warum schlägt der Flussdiagrammtest fehl?
Es scheint, dass libreoffice und unoconv Probleme beim korrekten Rendern des Flussdiagramms in der DOCX-Datei haben. Dies liegt wahrscheinlich daran, dass es mit Smart Art in Microsoft Office erstellt wurde. Das ist das Problem. Das ist ein Fehler, der auch in diesem Thread diskutiert wird . Wie Sie sehen können, sind die textuellen und visuellen Informationen im PDF enthalten, das sich aus der obigen Methode ergibt (ich musste den Text jedoch auswählen).
Beispielsweise wird die Schriftfarbe nicht richtig gelesen und einige Zeilen sind zu lang. Mir ist keine Linux-Lösung bekannt, mit der Smart Art korrekt dargestellt werden kann. :(
Dies ist auch der Grund, warum Sie nicht mit allen
print
auf dieser Seite veröffentlichten Lösungen zufrieden sind.Zusamenfassend
Kurz gesagt, was Sie tun, ist wirklich schwer und es gibt derzeit keine Lösungen, die Sie voll und ganz zufrieden stellen. Die Achillesferse der docx2pdf-Konvertierungen ist die clevere Kunst. Wenn Sie ohne das leben können oder einen Weg finden, um intelligente Kunst zu entdecken und sie irgendwie in ein Bild umzuwandeln, können Sie Ihr Ziel erreichen.
Option 1. Zwingen Sie Ihre Benutzer, sich mit dem Problem zu befassen
Dies ist eine sehr unelegante Lösung. Ihre Ersteller von Inhalten könnten ihre Smart Art als JPG speichern, wie auf den Office-Hilfeseiten beschrieben, und daher wäre die Konvertierung auf Ihrem Server möglich.
Option 2. Versuchen Sie, das Problem zu umgehen
Wenn die Flussdiagramme oft sehr ähnlich sind und Sie sich als Entwickler auskennen, können Sie versuchen, die Smart Art separat zu konvertieren. Sie können die Datei drawing1.xml aus dem DOCX-Cluster von Dokumenten extrahieren und dann mit der Verarbeitung in natürlicher Sprache und einigen verrückten Hacks die Smart Art neu erstellen. Zum Beispiel müssten Sie sich mit dieser Art von XML anlegen:
Oder zumindest extrahieren Sie als Minimallösung den Text (
<a:t>
?) Aus der Datei und speichern ihn auf einfachere Weise. Oder wenn die Flussdiagramme Ihrer PDFs alle gleich sind, können Sie ein Skript schreiben, um die Textfarbe und die Zeilenlänge in der XML selbst zu ändern. Dann könnten Sie ausführendoc2pdf
und Sie hätten eine Datei, die im Wesentlichen alle richtigen Informationen enthält, aber möglicherweise nicht die Formatierung. Im Fall von Flussdiagrammen möchten Sie wahrscheinlich auch einen Teil der Formatierung einbeziehen, da die Formatierung Teil der Informationen ist.Option 3. Verwenden Sie einen Drittanbieter-Service
Ich habe in den letzten Tagen einige Nachforschungen angestellt und einen Service gefunden, der die Konvertierung perfekt macht: zamzar . Mit Zamzar können Sie eine docx-Datei hochladen und Ihnen anschließend einen Link per E-Mail senden. Sie haben auch einen (kostenpflichtigen?) Dienst, bei dem Sie eine beliebige Datei an [email protected] senden und die konvertierte Datei dann wieder in Ihren Posteingang übertragen können. Sie können problemlos ein System erstellen, in dem Sie die Datei automatisch senden und aus der E-Mail analysieren. Das ist nicht so viel Arbeit und das Endergebnis ist das Beste.
Anmerkungen
Ich habe mir tatsächlich die Zeit genommen, die verschiedenen auf dieser Seite vorgeschlagenen Methoden zu testen. Bitte hinterlassen Sie alle Kommentare mit aktuellen Tests.
quelle
lowriter
ist jetztlowriter --convert-to pdf input_file.docx
. Die Verwendung--pt pdf
wird im Hintergrund fehlschlagen.Dies ist eine Befehlszeilenlösung, die anständig funktioniert, aber proprietäre Software verwendet.
Ich denke, dass das Grundproblem darin besteht, dass Microsoft Word-Formate nur für Microsoft Word vollständig verständlich sind (auch dort gibt es Unterschiede zwischen den Versionen - es gibt Word-Dateien aus der Vergangenheit, die in neueren Versionen falsch formatiert geöffnet werden). Alle anderen Lösungen sind Näherungswerte und Hacks, sodass sie je nach Datei funktionieren oder nicht.
Um sicherzugehen, dass Sie Ihre .docx-Dateien mit einer Microsoft Word-Installation verarbeiten müssen (und ja, ich denke, es ist ihre Option und es ist fair. Wenn Sie Word nicht verwenden möchten, verwenden Sie es nicht - ich gehe mit LaTeX für meine Arbeit, aber es ist schwierig, den Rest der Welt davon zu überzeugen ...).
Ich verwende Crossover seit Ewigkeiten, um Microsoft Office auf meinem Linux-Desktop (1) auszuführen, und finde es ziemlich nützlich. Vielleicht funktioniert es auch mit Wein - nie ausprobiert.
Ich mache die Konvertierung mit dieser Konfiguration:
1) Ich habe Crossover installiert
2) Ich habe meine Version von Microsoft Office unter Crossover installiert
3) Deaktivieren Sie in Microsoft Word "Hintergrunddruck"
4) Ich habe einen
cups-pdf
Drucker installiert und als Standarddrucker ausgewählt.5) Um die Konvertierung durchzuführen, führen Sie Folgendes aus (Hinweise hier ):
6) Ihre konvertierte Datei wird im
~/PDF/
Verzeichnis angezeigt.Das Ergebnis Ihres Dokuments ist nahezu perfekt (in Antwort 2 ist eine Fehlausrichtung aufgetreten, die in Office Word 2007 angezeigt wird, wenn es unter Crossover ausgeführt wird. Ich weiß nicht, ob es mit meiner Windows-Version zusammenhängt.).
Das Problem ist nun, dass die grafische Wortschnittstelle auftaucht - ich weiß nicht, wie ich sie "kopflos" machen soll. Befehlszeilenoptionen für Word haben nicht geholfen ...
(1) Ich bin in keiner Weise mit Codeveawers verwandt - nur ein glücklicher Benutzer.
quelle
Ich hatte dieses Problem auch in der Vergangenheit und musste es in letzter Zeit nicht mehr verwenden. Daher weiß ich nicht, ob es mich immer noch betrifft.
Zur Beantwortung der Frage:
Diese Frage: Wie Sie .doc oder .docx in .pdf stapelweise konvertieren, gibt in den Kommentaren einen Grund an, warum Ihre Konvertierung mit
lowriter
möglicherweise fehlschlägt:Die Antwort auf diese Frage könnte möglicherweise auch helfen:
Wie kann ich eine ODT-Datei in eine PDF-Datei konvertieren?
Du würdest rennen
libreoffice --headless --convert-to pdf *.odt
. Sie können weitere Informationen zu libreoffice mit dem Befehl abrufen,man libreoffice
wenn Sie Hilfe benötigen, um den Befehl zu verstehen oder zu optimieren .Sie können jedoch LibreOffice zurzeit nicht geöffnet haben, wie im folgenden Fehler beschrieben: https://bugs.freedesktop.org/show_bug.cgi?id=37531
Diese Frage hat auch mit Ubuntu zu tun, auch wenn sie sich auf SuperUser befindet: https://superuser.com/questions/156189/how-to-convert-word-doc-to-pdf-in-linux
Bei der ersten Antwort stehen zwei Optionen zur Verfügung, eine mit CUPS und das Erstellen eines PDF-Druckers, die andere mit LaTex, obwohl Sie angegeben haben, dass LaTex fehlgeschlagen ist.
Was die Konvertierung nach PDF über CUPS-PDF betrifft, würden Sie ausführen,
sudo apt-get install cups-pdf
gefolgt vonoowriter -pt pdf your_word_file.doc(x)
. Dies könnte bei Ihrem Problem mit dem Autor helfen.Dies ist wahrscheinlich ein Problem mit der Tatsache, dass Sie versuchen, von DOC / DOCX nach PDF zu konvertieren, wenn die meisten Tools ODT verwenden, da sie mit LibreOffice / OpenOffice / AbiWord zusammenhängen. Daher können sie entweder nicht versuchen, es vom Microsoft DOCX-Format oder bei der Konvertierung in ODT zu konvertieren.
Es gibt mehrere Fehler bei einer Konvertierung von .docx w. Word Art (Version ist enthalten):
https://bugs.freedesktop.org/show_bug.cgi?id=33072 - 3.3.0 rc 2 (veraltet, glaube ich)
https://bugs.freedesktop.org/show_bug.cgi?id=63289 - 4.0.2.2
https://bugs.freedesktop.org/show_bug.cgi?id=62251 - 4.0.0.3
https://bugs.freedesktop.org/show_bug.cgi?id=65260 - Nicht angegeben
Dies ist aus dem LibreOffice-Forum in Bezug auf die Konvertierung von .doc und etwas .docx: http://en.libreofficeforum.org/node/5096 . Es ist von Januar 2013, also sollte es etwas zutreffen.
Darüber hinaus weiß ich es wirklich nicht. Hoffe du löst dein Problem!
quelle
Wenn Sie Libreoffice installiert haben, können Sie versuchen, das zu konvertieren. Drücken Sie einfach Ctrl+ Alt+ Tauf Ihrer Tastatur, um das Terminal zu öffnen. Führen Sie beim Öffnen die folgenden Befehle aus:
Eine andere Möglichkeit ist die Installation von Cups PDF .
Drücken Sie dazu einfach Ctrl+ Alt+ Tauf Ihrer Tastatur, um das Terminal zu öffnen. Führen Sie beim Öffnen die folgenden Befehle aus:
Erstellen Sie dann einen neuen Drucker, legen Sie ihn als PDF-Dateidrucker fest und benennen Sie ihn nach Belieben, sofern Sie den Namen kennen. Führen Sie dann Folgendes aus:
Und Ihre PDF-Datei wird in sein
~/PDF
.quelle
Hier ist die bittere Wahrheit: Office-Lösungen für Linux sind Totalausfälle! Ich bin seit vielen Jahren ein Vollzeit-GNU / Linux-Benutzer und habe ständig nach verschiedenen Office-Lösungen gesucht und diese ausprobiert, vom alten Open-Office über das spätere Libre-Office bis hin zu Abi-Word usw. Haben alle versäumt, mir bei meiner Büroarbeit zu helfen. Bei nichtlateinischen Sprachen (von rechts nach links wie Persisch, Arabisch usw.) wird es noch schlimmer. Der Benutzer muss mit dieser Software kämpfen, um seine Arbeit zu erledigen! Und Microsoft Office-Kompatibilität gibt es einfach nicht. Ich kann stundenlang darüber reden, wie viel ich versucht habe und sie haben alle versagt, aber das ist nicht der Punkt dieser Frage.
Ich habe auch versucht, Microsoft Office mit WINE zu installieren und auszuführen, und zwar mit einigem Erfolg, aber es hat nicht gut funktioniert, und es ist größtenteils abgestürzt, als ich versucht habe, meine Office-Dateien zu öffnen.
LaTeX ist in Ordnung, aber keine Office-Lösung. LaTeX dient zum Festlegen von Schriftarten und ist eher ein Werkzeug für Profis. Es gibt weder Tabellenkalkulationen noch Präsentationen.
Also, was ist die Lösung?
Dies ist keine Befehlszeilenlösung. Die einzige Lösung, die ich mir in all den Jahren ausgedacht habe, um mich in meinem GNU / Linux-Betriebssystem zu halten und auch meine Büroarbeiten zu erledigen, besteht darin, eine minimale Microsoft Windows-Installation in einer virtuellen Maschine (wie VirtualBox) zu verwenden und zu installieren ein Microsoft Office-Anzug.
Es mag nicht schön klingen, aber es ist die einzige Lösung, die einwandfrei funktioniert und mich davon abhält, in meiner kostbaren Zeit mit schlechten Bürolösungen zu kämpfen. Zuerst dachte ich selbst, dass dies keine gute Lösung ist, aber nachdem ich mit allen anderen gescheitert bin und dieses VM-Zeug mehr als 2 Jahre lang gemacht habe, bin ich wirklich zufrieden damit
:)
================================================ =============================
HINWEIS 1: Ich bewerbe keine Microsoft-Produkte! Ich versuche nur, das Problem zu lösen und mit dem Leben weiterzumachen.
HINWEIS-2: Wie bereits erwähnt, handelt es sich NICHT um eine Befehlszeilenlösung. Warum also die Antwort posten? Weil es eine GEPRÜFTE und GUT ARBEITENDE Option ist! Wenn keine WORKING-Befehlszeilenlösung verfügbar ist (was ich sehr vermute), ist eine ALTERNATIVE-Option besser als NO-Optionen.
quelle
wine
anstelle einer virtuellen Maschine verwenden?WINE
nicht gut. Das Programm funktionierte nicht wie unter Windows (zeigte falsches Verhalten) und stürzte auch sehr oft ab!Hier sind einige Anwendungen, die Sie ausprobieren können, ob sie mit FF Multi Converter funktionieren, oder Sie können Kingsoft Office ausprobieren .
quelle
Installieren Sie Calibre über das Software Center oder Synaptic und stellen Sie die Standardausgabe auf PDF ein.
Führen Sie an einer Shell-Eingabeaufforderung Folgendes aus
quelle
ValueError: No plugin to handle input format: docx
. Google hat in diesem Fall nicht geholfen, daher melde ich einen Fehler.