Automatice la transferencia de artículos de Microsoft Word a Geektimes


Me gusta escribir en Geektimes , pero hay un inconveniente. Esta es la necesidad de usar marcado personalizado en el estilo de habra y transferir imágenes manualmente a habrastorage.org . Escribo artículos en MS Word en Windows . Honestamente, pasé aproximadamente una hora para encontrar soluciones listas para este problema. Lo mejor encontrado fue un análisis de la API de habrastorage para automatizar la carga de imágenes, pero parece anticuado. Se mencionó cierto convertidor, pero con un enlace roto.


La esencia de la automatización propuesta es preparar el texto para copiarlo en la ventana del editor Geektimes con solo hacer clic en un botón en Word . Y después de copiar, para que las imágenes aparezcan automáticamente allí. La tecnología es muy simple. MS Word , como sabe, puede contener código incrustado en Visual Basic . Este es un dialecto especial de Visual Basic llamado VBA ( Visual Basic para Aplicaciones.

) En VBA, puede escribir scripts bastante complejos para convertir documentos a Word. Los procedimientos escritos en VBA se llaman macros. Las macros en Word se pueden invocar explícitamente desde un menú especial, o puede asignar una llamada a su ejecución a un botón específico en la barra de herramientas.
Fotos Geektimes que se bombea para sí mismo. Para poder descargar desde algún lugar, necesita colocar las imágenes en algún lugar de Internet. Para no tomarme mi tiempo desarrollando y analizando varias API para sitios gratuitos de alojamiento de imágenes como photos.google.com, decidí recurrir al antiguo FTP . Compramos o de alguna manera recibimos un servicio de alojamiento de sitios web con descarga de contenido FTP . Sam MS Word VBANo tiene herramientas para trabajar con FTP , pero interactúa bien con objetos COM (es decir, archivos dll especiales ). Para trabajar en FTP , se utilizó un módulo COM del proyecto WinSCP .
La macro VBA escrita por mí primero reemplaza los estilos especificados del documento de Word con el marcado del texto, luego convierte el documento de Word en un documento HTML . La representación HTML enno es necesaria para nosotros. Como resultado de la conversión, Word crea un subdirectorio con todas las imágenes del documento en el formato. png. Las imágenes en masa se transfieren a un servidor FTP determinado . Después de eso, la macro elimina las imágenes del documento y sustituye en su lugar los enlaces al sitio donde se acaban de cargar estas imágenes. Permanece en la ventana del documento de Word para seleccionar todo el texto y copiarlo en la ventana del editor en Geektimes . Haga clic en un botón en Geektimes para guardarlo como borrador. Luego, nuevamente haga clic en edición y asegúrese de que Geektimes ya haya subido las imágenes y las haya reemplazado con enlaces al almacenamiento . El trabajo esta hecho.

Instalar WinSCP


Descargue el archivo . Ensamblaje NET / biblioteca COM y descomprímalo en un directorio accesible.
En este directorio, ejecute la línea de comando: % WINDIR% \ Microsoft.NET \ Framework64 \ v4.0.30319 \ RegAsm.exe WinSCPnet.dll / codebase /tlb:WinSCPnet64.tlb
Eso es todo.

Cómo crear un artículo sobre esta tecnología.


Para simplificar las cosas, se creó un archivo de plantilla , Article_GT.dotm , que contiene la macro VBA necesaria y un puntero para conectarse al objeto WinSCP .
Para ver la macro y verificar la operabilidad de conectar el objeto WinSCP , después de abrir el archivo de plantilla, haga clic en este botón en la barra de herramientas de Word

y seleccione Ver macros en él , luego Editar . Debería aparecer una ventana de este tipo:


en esta ventana, en el menú Herramientas-> Referencias , se abre este cuadro de diálogo. Debe marcarse línea con WinSCP .


Si abres el archivo directamente en Googleentonces se abrirá una hoja en blanco. Así es, la plantilla está vacía. En él, solo el estilo Normal y el estilo Título 1 se parecen al estilo habr. Debes escribir el texto tú mismo.
La macro en la plantilla debe ajustarse antes de su uso. Al comienzo de la macro hay un bloque
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 = " "            '   

Debe abrir el archivo como plantilla en Word , ingresar los parámetros correctos y guardar como plantilla.
Luego puede hacer clic en la plantilla y escribir un artículo. Guarde el artículo e invoque la macro ConvertToHabr .
Si la descarga de imágenes salió bien, esto se escribirá en la barra de estado en la ventana de Word .
El documento inicial se cierra, en su lugar aparece el texto convertido.

Descargo de responsabilidad


Este no es un convertidor completamente funcional. Ahora solo reemplaza los estilos de las fuentes en negrita y cursiva con las etiquetas Haber, cambia los estilos del Título 1..5 a las etiquetas y las sustituye en lugar de hipervínculos e imágenes. Como esto es todo lo que necesitaba de este convertidor al escribir este artículo.
El archivo de plantilla está disponible aquí y está disponible para que todos lo puedan mejorar, pero no puedo garantizar la continuación de este proyecto, su apoyo, su calidad, su pureza de patentes y la vida eterna de este enlace .

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


All Articles