简体   繁体   中英

Simple html to pdf conversion commandline tool for automated file creation

I have a system that automatically creates and saves documents as html. For further storage they ought to be pdfs though. I want to avoid having to do it manually so my preferred solution would be a small executable that I can call via command line, feed it with a source and output path (and ideally further parameters) and then let it do its magic. Something in concept like this:

exampleConverter.exe "C:\source\document1.html" "C:\convertedPDFs\document1.pdf"

No UI whatsoever, no human input, no popping up and closing console.

I looked through several options, but common problems I encountered were

  • the software not being free for commercial use
  • It just being a library of code, not a ready-to-go executable / code-base you just need to compile into one
  • The tool needing to get installed instead of being 'portable'

I'd like to avoid having to implement any modern libraries myself, partially for simple time concearns, partially because internally our code runs in a less than modern IE & VBS context so I for see compatibility problems. Simply triggering a precompiled executable through a generic command line inerface that I can trigger from vbs seems like the perfect solution here.

Your Windows OS program code is almost there, why not reverse input and output (makes the task easier later), with a switch or two. you can embellish that with your for /? loop to run through the current working folder, just like any other program.

Your pseudo code

exampleConverter.exe --print-to-pdf="C:\convertedPDFs\document1.pdf" --headless "C:\source\document1.html" 

Working Windows native code

"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" --print-to-pdf="%CD%\out\document1.pdf" --headless "%CD%\in\document1.html" 

Other options are available

在此处输入图像描述

learn.microsoft.com suggest this working snippet to run edge with parameters

wscript vbsEdge.vbs

Dim shell
Set shell = WScript.CreateObject("WScript.Shell")

shell.Run "msedge https://www.google.com --hide-scrollbars --content-shell-hide-toolbar"

So just combine the program methods. However, you need to sort out your own arguments.

For greater control then you need to step-up to heavier custom isations https://blogs.windows.com/msedgedev/2015/07/23/bringing-automated-testing-to-microsoft-edge-through-webdriver/ etc.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM