Automatisieren Sie die Übertragung von Artikeln von Microsoft Word nach Geektimes


Ich schreibe gerne über Geektimes , aber es gibt eine Unannehmlichkeit. Dies ist die Notwendigkeit, benutzerdefinierte Markups im Stil von Habra zu verwenden und Bilder manuell auf habrastorage.org zu übertragen . Ich schreibe Artikel in MS Word unter Windows . Ich habe ehrlich gesagt ungefähr eine Stunde damit verbracht, fertige Lösungen für dieses Problem zu finden. Das beste Ergebnis war eine Analyse der Habrastorage-API zur Automatisierung des Ladens von Bildern , die jedoch veraltet zu sein scheint. Es wurde ein bestimmter Konverter erwähnt, jedoch mit einer defekten Verbindung.


Das Wesentliche der vorgeschlagenen Automatisierung besteht darin , den Text zum Kopieren in das Geektimes- Editorfenster mit einem Klick auf eine Schaltfläche in Word vorzubereiten . Und nach dem Kopieren, damit dort automatisch Bilder erscheinen.

Die Technologie ist sehr einfach. Wie Sie wissen, enthält MS Word möglicherweise eingebetteten Code in Visual Basic . Dies ist ein spezieller Visual Basic- Dialekt namens VBA ( Visual Basic for Applications).) In VBA können Sie recht komplexe Skripte zum Konvertieren von Dokumenten in Word schreiben. In VBA geschriebene Prozeduren werden als Makros bezeichnet. Makros in Word können explizit über ein spezielles Menü aufgerufen werden, oder Sie können einer bestimmten Schaltfläche in der Symbolleiste einen Aufruf zu ihrer Ausführung zuweisen.
Bilder Geektimes pumpt er vor sich hin. Damit er von irgendwoher herunterladen kann, muss er die Bilder irgendwo im Internet platzieren. Um meine Zeit nicht mit der Entwicklung und Analyse verschiedener APIs für kostenlose Bildhosting- Sites wie photos.google.com zu verbringen, habe ich mich für das gute alte FTP entschieden . Wir kaufen oder erhalten in irgendeiner Weise einen Website-Hosting-Service mit FTP- Inhalten zum Herunterladen . Sam MS Word VBAEs verfügt nicht über Tools zum Arbeiten mit FTP , interagiert jedoch gut mit COM-Objekten (d. H. Speziellen DLL- Dateien). Für die Arbeit mit FTP wurde ein COM- Modul aus dem WinSCP- Projekt verwendet .
Das von mir geschriebene VBA-Makro ersetzt zuerst die angegebenen Stile des Word- Dokuments durch das Markup des Texts und konvertiert dann das Word- Dokument in ein HTML- Dokument . Die HTML- Darstellung selbst ist für uns nicht erforderlich. Als Ergebnis der Konvertierung erstellt Word ein Unterverzeichnis mit allen Bildern aus dem Dokument im Format. png. Bilder in großen Mengen werden auf einen bestimmten FTP- Server übertragen. Danach löscht das Makro die Bilder im Dokument und ersetzt an ihrer Stelle Links zu der Site, auf die diese Bilder gerade hochgeladen wurden. Es verbleibt im Fenster des Word- Dokuments , um den gesamten Text auszuwählen und in das Editorfenster in Geektimes zu kopieren . Klicken Sie in Geektimes auf eine Schaltfläche , um sie als Entwurf zu speichern. Klicken Sie dann erneut auf Bearbeiten und stellen Sie sicher, dass Geektimes die Bilder bereits hochgeladen und durch Links zu habrastorage ersetzt hat . Die Arbeit ist erledigt.

Installieren Sie WinSCP


Laden Sie die Datei herunter . NET Assembly / COM-Bibliothek und entpacken Sie es in ein zugängliches Verzeichnis.
Führen Sie in diesem Verzeichnis die Befehlszeile aus: % WINDIR% \ Microsoft.NET \ Framework64 \ v4.0.30319 \ RegAsm.exe WinSCPnet.dll / codebase /tlb:WinSCPnet64.tlb
Das war's.

So erstellen Sie einen Artikel zu dieser Technologie.


Zur Vereinfachung wurde eine Vorlagendatei , Article_GT.dotm , erstellt , die das erforderliche VBA- Makro und einen Zeiger für die Verbindung mit dem WinSCP- Objekt enthält .
Um das Makro anzuzeigen und die Funktionsfähigkeit des Verbindens des WinSCP- Objekts zu überprüfen , klicken Sie nach dem Öffnen der Vorlagendatei auf diese Schaltfläche in der Word-Symbolleiste

und wählen Sie darin Makros anzeigen und dann Bearbeiten . Ein Fenster dieser Art sollte angezeigt werden :


In diesem Fenster wird im Menü Extras-> Referenzen dieses Dialogfeld geöffnet. Es sollte mit WinSCP als Linie markiert werden .


Wenn Sie die Datei direkt in Google öffnendann öffnet sich ein leeres Blatt. Das stimmt, die Vorlage ist leer. Darin ähneln nur der Normalstil und der Überschriftenstil 1 dem Habr-Stil. Sie müssen den Text selbst schreiben.
Das Makro in der Vorlage muss vor der Verwendung angepasst werden. Am Anfang des Makros steht ein solcher Block
Const TMPNAME = "TMP"                    '        
Const URL = "http://www..ru"
Const FTPPATH = "/public_html/imgs/"     '         FTP,  
Const WEBPATH = "/imgs/"                 '       ,  
Const HOSTNMAE = "ftp..ru"   '    FTP 
Const USERNAME = " "             '      FTP 
Const PASSWORD = " "            '   

Sie müssen die Datei als Vorlage in Word öffnen , die richtigen Parameter eingeben und als Vorlage speichern.
Dann können Sie auf die Vorlage klicken und einen Artikel schreiben. Speichern Sie den Artikel und rufen Sie das ConvertToHabr- Makro auf .
Wenn der Download der Bilder erfolgreich war, wird dies in die Statusleiste im Word- Fenster geschrieben .
Das ursprüngliche Dokument wird geschlossen, an seiner Stelle wird der konvertierte Text angezeigt.

Haftungsausschluss


. Bold Italic , Heading 1..5 . , .
, , , , .

Source: https://habr.com/ru/post/de388785/


All Articles