Ich möchte einen sehr chaotischen* Satz von Referenz-PDFs in Wikitext konvertieren. Idealerweise möchte ich diesen Prozess zu einer einfachen One-and-Done-Anwendung machen, verstehe aber, dass ein solches Tool möglicherweise nicht verfügbar ist. Die Verwendung einer Reihe von Zwischenwerkzeugen ist möglich.
Es wird bevorzugt, dass zwischengeschaltete Tools die folgenden Spezifikationen erfüllen (die ersten beiden sind lediglich Präferenzen und können zugunsten der Funktionalität vernachlässigt werden):
*Die fraglichen PDFs sind beide schwierig zu verwenden, da sie häufig auf Seiten in sich selbst und untereinander verweisen, ohne interne Verlinkung. Sie verwenden zufällig auch eine zweispaltige Formatierung, die die meisten Konvertierungs-zu-HTML/Text-Tools, die ich bisher ausprobiert habe (Calibre/FoxItPDF), anscheinend nicht verarbeiten können - Sie exportieren entweder den Text in derselben Zeile, oder sie erstellen Absatzelemente, die zwischen den beiden Spalten wechseln - es könnte möglich sein, diese Ausgabedateien mit etwas jQuery zu transformieren, aber das ist viel Arbeit für wenig Gewinn.
Windows 10 oder Linux (Ubuntu) würden als verfügbare Plattformen betrachtet. Auch Web-Apps oder Google Drive sind möglich.
Ich schlage vor, dass Sie die folgenden Schritte ausführen:
PDF → Word → HTML → MediaWiki
Es gibt einige kostenlose Online-Tools, die die Konvertierung in sehr guter Qualität durchführen. Am besten gefällt mir SmallPDF . Ich denke, dieser Ansatz ist im Vergleich zu besser, pdftotext
da er über eine gute Heuristik verfügt, um Überschriften zu erkennen und die wesentliche Formatierung (fett, kursiv) beizubehalten.
Sie können Pandoc verwenden , um die Konvertierung von DOCX nach HTML durchzuführen:
pandoc -i file.docx -s -o file.html
Der -s
(eigenständige) Schalter ist wichtig, da er Codierungsinformationen in der HTML-Datei speichert. Wenn Sie die Datei mit einem Webbrowser öffnen, möchten Sie sie richtig sehen.
Eine Einschränkung, die mir beim Testen aufgefallen ist, ist, dass leicht eingerückte Absätze <blockquote>
von Pandoc als s angesehen werden könnten. Denken Sie daran, während Sie Ihre Konvertierungen durchführen. Möglicherweise möchten Sie auch die HTML-Datei überprüfen, bevor Sie den letzten Schritt ausführen. Formeln werden wahrscheinlich gebrochen.
Sie können diesen Schritt auch mit Pandoc durchführen. Theoretisch ist der HTML-Schritt möglicherweise nicht erforderlich, aber meiner Meinung nach ist es nützlich, mit einem Browser zu überprüfen, ob alles in Ordnung ist, um eine schnelle Vorschau zu erhalten.
pandoc -i file.html -t mediawiki -o file.wiki.txt
Ich habe diese Methode mit dem Paper Imperfect Forward Secrecy: How Diffie-Hellman Fails in Practice getestet . Das Original-PDF sieht so aus:
Die HTML-Datei (nach den ersten beiden Schritten) ist ganz gut:
Die Einrückung stammt von Absätzen, die als Anführungszeichen behandelt werden. Ich glaube, es kann behoben werden, indem die DOCX-Datei bei Bedarf angepasst wird.
Zum Schluss noch ein Auszug aus dem MediaWiki-Code:
<blockquote>'''Imperfect Forward Secrecy: How Diffie-Hellman Fails in Practice'''
David Adrian''¶'' Karthikeyan Bhargavan''∗'' Zakir Durumeric''¶'' Pierrick Gaudry''†'' Matthew Green''§''
J. Alex Halderman''¶'' Nadia Heninger''‡'' Drew Springall''¶'' Emmanuel Thomé''†'' Luke Valenta''‡'' Benjamin VanderSloot''¶'' Eric Wustrow''¶'' Santiago Zanella-Béguelin''"'' Paul Zimmermann''†''
</blockquote>
== ''∗'' INRIA Paris-Rocquencourt ''†'' INRIA Nancy-Grand Est, CNRS, and Université de Lorraine ==
<blockquote>''"'' Microsoft Research ''‡'' University of Pennsylvania ''§'' Johns Hopkins ''¶'' University of Michigan
For additional materials and contact information, visit [https://weakdh.org/ WeakDH.org.]
'''ABSTRACT'''
We investigate the security of Diffie-Hellman key exchange as used in popular Internet protocols and find it to be less secure than widely believed. First, we present Logjam, a novel flaw in TLS that lets a man-in-the-middle downgrade connections to “export-grade” Diffie-Hellman. To carry out this attack, we implement the number field sieve discrete log algorithm. After a week-long precomputation for a specified 512-bit group, we can compute arbitrary discrete logs in that group in about a minute. We find that 82% of vulnerable servers use a single 512-bit group, allowing us to compromise connections to 7% of Alexa Top Million HTTPS sites. In response, major browsers are being changed to reject short groups.
We go on to consider Diffie-Hellman with 768- and 1024-bit groups. We estimate that even in the 1024-bit case, the com- putations are plausible given nation-state resources. A small number of fixed or standardized groups are used by millions of servers; performing precomputation for a single 1024-bit group would allow passive eavesdropping on 18% of popular HTTPS sites, and a second group would allow decryption of traffic to 66% of IPsec VPNs and 26% of SSH servers. A close reading of published NSA leaks shows that the agency’s attacks on VPNs are consistent with having achieved such a break. We conclude that moving to stronger key exchange methods should be a priority for the Internet community.
</blockquote>
= INTRODUCTION =
<blockquote>Diffie-Hellman key exchange is widely used to establish session keys in Internet protocols. It is the main key exchange mechanism in SSH and IPsec and a popular option in TLS. We examine how Diffie-Hellman is commonly implemented and deployed with these protocols and find that, in practice, it frequently offers less security than widely believed.
pdfsam
die PDFs in Stücke von 100-200 Seiten aufteilen?pdttohtml
Befehle hat und es hat ziemlich gut funktioniert (Beibehaltene Formatierung fast fehlerfrei - einige Probleme mit Färbung und Schriftart, aber insgesamt stimmte ALLES fast genau mit PDF überein. Ich werde meine Antwort mit aktualisieren diese Info, wahrscheinlich später heute Abend.Nach einigem Experimentieren habe ich eine Multi-Software-Lösung für die Linux-Shell entwickelt. Die Formatierung blieb bei meinen Versuchen sehr gut erhalten, daher kann ich sagen, dass ich mit den Ergebnissen der HTML-Konvertierung zufrieden bin. Die Mediawiki-Ausgabe muss gelegentlich noch etwas aufgeräumt werden, aber insgesamt haben wir ein sehr gutes Ergebnis erzielt.
Wir verwenden die folgenden Befehlszeilentools:
Diese können mit den folgenden Befehlen installiert werden (Ubuntu Linux 14.04 vorausgesetzt. Passen Sie die Anweisungen für Ihre Linux-Version an. Einige dieser Tools funktionieren möglicherweise auch unter Windows, aber ich stelle keine Installations- oder Verwendungsanweisungen für sie bereit.)
Für Poppler:sudo apt-get install poppler-utils
Für Pandoc: Installationsanleitung
Pandoc empfiehlt ausdrücklich, die .deb-Datei herunterzuladen und daraus zu installieren - wenn Sie jedoch nichts gegen eine ältere Version haben und bereit sind, damit verbundene Fehler zu riskieren, sudo apt-get install pandoc
könnte sie problemlos funktionieren.
Poppler enthält eine Reihe von Befehlszeilen-Tools zum Extrahieren von Dingen wie Bildern aus PDF-Dateien, die hier ausführlicher beschrieben werden .
Schritte:
sudo mkdir dirname
.Führen Sie den folgenden Befehl aus:
sudo pdftohtml -s -p -fmt png -nodrm "file.pdf" "file/file.html"
Dieser Befehl erstellt viele Dateien, weshalb wir die Ergebnisse in einem eigenen Verzeichnis enthalten. Es werden alle Bilder in der Datei extrahiert, sodass alle diese dort gespeichert werden. Außerdem werden zwei HTML-Dateien erstellt, von denen eine eine Gliederung ist und die andere den gesamten Text in einer Formatierung enthält, die dem Original sehr nahe kommt.
Sie können eingeben pdftohtml -h
, um die verfügbaren Parameter besser zu verstehen.
Ich habe die hier verwendeten Parameter zum Verständnis des Befehls erklärt:
-s
enthält die gesamte Ausgabe in einem HTML-Dokument (mit Ausnahme der Gliederung.-p
Versuche, interne PDF-Links durch HTML-Links zu ersetzen.-fmt
steuert das Ausgabeformat von Bildern, wobei png
und jpg
gültige Optionen sind.-nodrm
igores-Download-Rechteverwaltungsbeschränkungen für das PDF.-i
ignoriert Bilder. Ich habe dies nicht verwendet, aber es erschien mir ratsam, dies zu erwähnen, da es in einigen Fällen Ihr Ausgabeformat massiv beschleunigen kann.pdftotext
Poppler hat auch ein pdftotext
Kommando. Dies war das einzige Tool, das ich bisher gefunden habe, das die PDF-Extraktion gut handhabte, wenn zwei Textspalten vorhanden waren. Während andere Tools gerade von links nach rechts oder abwechselnd Textzeilen aus den beiden Spalten druckten, fügte Poppler den Text in der richtigen Reihenfolge zusammen.
Führen Sie den folgenden Befehl aus:
pdftotext -htmlmeta "file.pdf" "file.html"
Replace "file" with the name of the file you want to parse and with the name of the HTML file you want to write your text output to.
The `-htmlmeta` option creates an HTML version of the text in your PDF. (This is much less fancy than the previous command and only puts the text in `pre` tags). You should see an HTML file in your directory which you can open to check the results of. Depending on the formatting of your source PDF file, you may find that Poppler is variable in it's effectiveness. You can try running `pdftotext -h` for information on other command options that may improve or worsen your results.
(oder fast jedes andere Format!) Pandoc ist ein sehr nützliches Befehlszeilenprogramm, das eine Eingabedatei in nahezu jedem Format in nahezu jedes andere Ausgabeformat konvertiert. Bleiben Sie im selben Verzeichnis und führen Sie einfach den folgenden Befehl aus:
pandoc file.html -f html -t mediawiki -s -o file.txt
Dieser Befehl nimmt einfach die HTML-Datei und schreibt sie im entsprechenden MediaWiki-Format in eine txt-Datei. Ich habe eine Aufschlüsselung der Parameter für die grundlegende Verwendung bereitgestellt, falls Sie in ein anderes Format konvertieren müssen.
-f
Das Eingabeformat der Datei.-t
Das Format der Ausgabedatei.-s
Standalone fügt dem Dokument eine Kopf- und Fußzeile hinzu, anstatt ein Dokumentfragment zu erstellen.-o
Der Name der Ausgabedatei.Weitere Informationen zu Pandoc finden Sie im Benutzerhandbuch .
Es ist möglich, dass bei Pandoc ein Fehler auftritt, der vermutlich dadurch verursacht wird, dass Ihre Datei zu groß ist. Ich bin auf diesen Fehler gestoßen und einige Fehlerbehebungen finden Sie hier .
Abhängig von Ihrer PDF-Codierung finden Sie möglicherweise seltsame Unicode-Zeichen in Ihrer HTML-Ausgabe. Dieser Schritt soll diese Ausgabe mit dem bestmöglichen Genauigkeitsgrad bereinigen. ftfy steht für fixes text for you und ist eine Python-Bibliothek mit einer Befehlszeilenschnittstelle. Wir werden die Befehlszeile verwenden, um unsere Dateien zu bereinigen. Dieser Schritt wird vor der Verwendung von Pandoc durchgeführt.
So installieren Sie ftfy:
git clone https://github.com/LuminosoInsight/python-ftfy.git
cd python-ftfy
sudo python setup.py install
Oder, wenn Ihr System Pip hat, pip install ftfy
. Beachten Sie, dass Sie Python 3 benötigen, wenn Sie eine Version von 5.0 (die neueste verfügbare zum Zeitpunkt des Schreibens) oder höher verwenden möchten. Ich habe Python 2.x mit ftfy 4.1.1 für diese Antwort verwendet. Geben Sie im selben Verzeichnis den folgenden Befehl ein:
ftfy -o file_clean.html --preserve-entities file.html
Optional können Sie die --guess
Option hinzufügen, dass ftfy Ihre Kodierung erraten soll, oder --encoding
wenn Sie Ihre Kodierung kennen. Dies kann zu besseren Ergebnissen führen.
Izzy
luxcru
Izzy
Izzy
luxcru
luxcru
luxcru
luxcru
luxcru