Twoja aplikacja webowa musi zamieniać strony HTML na PDF, DOC lub TIFF po stronie serwera. Oczywiste opcje są bolesne: przeglądarka headless zużywa ogromne ilości pamięci i pada pod obciążeniem, proces wiersza poleceń startuje wolno i trudno go monitorować, a chmurowe API wyprowadza Twoje dane i nalicza opłaty za każde wywołanie.
Total HTML Converter X udostępnia pełny interfejs ActiveX / COM. Zainstancjonuj obiekt raz z .NET, PHP, Python, ASP, VBScript lub dowolnego środowiska obsługującego COM, wywołaj Convert() i odbierz plik wyjściowy. Żadnych podprocesów, żadnego renderowania w przeglądarce, żadnego zewnętrznego API. Pliki nigdy nie opuszczają Twojego serwera.
Process.Start(), brak parsowania stdout, brak procesów-zombie.(30-dniowy okres próbny — bez podawania e-maila)
Licencja serwerowa od $249.90
ActiveX to model komponentowy firmy Microsoft. W praktyce oznacza to, że Total HTML Converter X rejestruje w systemie Windows klasę COM (HTMLConverter.HTMLConverterX), którą może zainstancjonować i wywoływać dowolne środowisko obsługujące COM. Nie wywołujesz REST API ani procesu wiersza poleceń — ładujesz bibliotekę DLL do swojej aplikacji i wywołujesz metody na obiekcie wewnątrzprocesowym.
Ma to znaczenie z trzech powodów:
Dowolny język rozumiejący COM zadziała: C# i VB.NET przez interop .NET, C++ przez CoCreateInstance, PHP przez klasę COM, Python przez pywin32, Classic ASP przez Server.CreateObject, VBScript, JScript/WSH, Delphi, PowerShell, Ruby przez win32ole oraz Node.js przez winax.
reg query HKCR\HTMLConverter.HTMLConverterX. Jeśli klucz istnieje, obiekt COM jest gotowy.Type.GetTypeFromProgID(). W PHP użyj new COM("HTMLConverter.HTMLConverterX"). W Pythonie użyj win32com.client.Dispatch("HTMLConverter.HTMLConverterX").Convert(source, destination, options). Przekaż ścieżkę wejściowego HTML, ścieżkę pliku wyjściowego oraz łańcuch opcji z flagami takimi jak -c PDF, -OwnerPassword secret, -Watermark CONFIDENTIAL.C# / .NET
var conv = Activator.CreateInstance(
Type.GetTypeFromProgID("HTMLConverter.HTMLConverterX"));
conv.GetType().InvokeMember("Convert",
System.Reflection.BindingFlags.InvokeMethod, null, conv,
new object[] { @"C:\In\report.html", @"C:\Out\report.pdf",
"-c PDF -OwnerPassword s3cret -NoPrint" });
PHP
$c = new COM("HTMLConverter.HTMLConverterX");
$c->Convert(
"C:\\In\\report.html",
"C:\\Out\\report.pdf",
"-c PDF -Watermark DRAFT -log C:\\Logs\\html.log"
);
Python (pywin32)
import win32com.client
conv = win32com.client.Dispatch("HTMLConverter.HTMLConverterX")
conv.Convert(
r"C:\In\report.html",
r"C:\Out\report.pdf",
"-c PDF -OwnerPassword secret -NoPrint"
)
Classic ASP / VBScript
Set Conv = Server.CreateObject("HTMLConverter.HTMLConverterX")
Conv.Convert _
"C:\In\report.html", _
"C:\Out\report.pdf", _
"-c PDF -Watermark ""COMPANY CONFIDENTIAL"""
Set Conv = Nothing
Trzeci argument Convert() to łańcuch flag oddzielonych spacjami. Kluczowa flaga to -c FORMAT. Zmień ją, a zmienisz format wyjściowy:
| Flaga | Wyjście | Typowe zastosowanie |
|---|---|---|
-c PDF | Archiwizacja, druk, dystrybucja | |
-c DOC / -c DOCX | Microsoft Word | Dalsza edycja, współpraca |
-c XLS | Excel | Wyciąganie tabel z HTML do analizy |
-c TIFF | Wielostronicowy TIFF | Systemy faksowe, potoki obrazowania dokumentów |
-c JPEG | Obraz JPEG | Miniatury, osadzone podglądy |
-c RTF | Rich Text | Edytowalne wyjście zgodne z Word bez DOCX |
-c TXT | Tekst zwykły | Indeksowanie tekstu, systemy wyszukiwania |
-c XHTML | XHTML | Oczyszczone wyjście HTML |
Możesz łączyć z flagami zabezpieczeń i układu:
-OwnerPassword secret — hasło właściciela PDF (kontroluje uprawnienia)-UserPassword open123 — hasło otwarcia PDF-NoPrint / -NoCopy / -NoModify — ograniczenia uprawnień PDF-Watermark "CONFIDENTIAL" — tekstowy znak wodny na każdej stronie-PageSize A4 / Letter / Legal — rozmiar papieru-log C:\Logs\html.log — zapis logu konwersji do monitorowania| Aspekt | Total HTML Converter X (ActiveX) | Wiersz poleceń | Przeglądarka headless |
|---|---|---|---|
| Koszt startu | Brak (DLL wewnątrzprocesowy) | Uruchomienie procesu na każde wywołanie | Ciężki — nowa instancja przeglądarki |
| Zużycie pamięci | Małe | Małe | Duże (Chromium = ponad 200 MB) |
| Współbieżność | Bezpieczny wątkowo w obrębie procesu | Wieloprocesowo | Jedna przeglądarka na workera |
| Obsługa błędów | Natywny wyjątek języka | Parsowanie stdout / kodu wyjścia | Parsowanie protokołu JSON |
| Formaty wyjściowe | PDF, DOC, XLS, TIFF, JPEG, RTF, TXT, XHTML | Te same (ten sam silnik) | Zwykle tylko PDF + PNG |
| Wdrożenie | Pojedynczy instalator MSI | Pojedynczy instalator MSI | Przeglądarka + driver + sandbox |
| Wymagana sieć | Nie | Nie | Nie (po instalacji) |
Brak GUI, brak okien potwierdzenia, brak monitów "Zapisz jako". Działa pod IIS, wewnątrz usług Windows lub z zadań harmonogramu bez zalogowanego użytkownika.
Przeglądarka nie jest wymagana. Konwerter parsuje HTML i CSS własnym kodem. Oznacza to, że aktualizacje Chrome nie zepsują Twojego potoku, nie ma profili przeglądarki, nie ma niezgodności wersji driverów.
W przeciwieństwie do cenników per użytkownik lub per konwersja, Total HTML Converter X jest licencjonowany per serwer. Obsłuż tysiące użytkowników z jednej licencji.
Instalator dostarcza działające projekty przykładowe dla ASP, PHP i C++. Otwórz je w Visual Studio, wybranym IDE lub edytorze tekstu i dostosuj do swoich potrzeb.
Bez znaku wodnego, bez limitu konwersji, bez konieczności podawania e-maila przy pobieraniu. Zintegruj z prototypem, udowodnij, że działa, a następnie kup licencję.
(30-dniowy okres próbny — bez podawania e-maila)
Licencja serwerowa od $249.90
Windows 7/8/10/11 • Server 2012/2016/2019/2022
"Zastąpiłem potok Puppeteer, który zużywał 2 GB RAM na workera i padał każdej nocy. Wywołanie ActiveX wpasowuje się w naszą istniejącą usługę roboczą .NET — jedno wywołanie metody, brak podprocesu, brak przeglądarki headless do restartowania. Pamięć pozostaje stabilna. Jakość wyjścia PDF jest lepsza niż ta, którą dawał nam Chromium, zwłaszcza na CSS z tabelami."
Daniel Park Senior Backend Engineer
"Prowadzimy portal rozliczeniowy w PHP pod IIS. Faktury są generowane jako szablony HTML, konwertowane do PDF na bieżąco i wysyłane e-mailem do klientów. Integracja COM to trzy linie PHP. Brak API chmurowego, żadne pliki nie opuszczają naszego serwera. Jednorazowa licencja $249.90 zwróciła się w pierwszym tygodniu użytkowania w porównaniu z API naliczającym opłaty per dokument, które rozważaliśmy."
Amira Hassan Web Applications Developer
"Zintegrowałem z aplikacją Classic ASP, która działa od ponad 15 lat. <code>Server.CreateObject("HTMLConverter.HTMLConverterX")</code> zadziałało za pierwszym razem pod IIS. Dobrze, że rejestracje 32-bit i 64-bit są oddzielne — potrzebowałem wersji 32-bitowej. Dokumentacja mogłaby mieć więcej przykładów specyficznie dla VB6, ale przykład ASP był wystarczająco bliski, aby go zaadaptować."
Victor Rossi IT Integration Lead
CoCreateInstance), PHP (przez klasę COM), Python (przez pywin32), Classic ASP i VBScript (przez Server.CreateObject), JScript / WSH, Delphi, PowerShell, Ruby (przez win32ole) oraz Node.js (przez winax lub podobne bindingi).Server.CreateObject. Aplikacje ASP.NET odwołują się bezpośrednio do klasy COM. Tożsamość puli aplikacji IIS potrzebuje uprawnień odczytu do źródłowych plików HTML, uprawnień zapisu do katalogu wyjściowego oraz uprawnień odczytu gałęzi rejestru COM. Dla Classic ASP włącz obsługę aplikacji 32-bitowych w puli aplikacji, jeśli zainstalowałeś wersję 32-bitową.Convert() zgłasza wyjątek COM, który pojawia się w Twoim języku jako wyjątek natywny — COMException w .NET, com_exception w PHP, pywintypes.com_error w Pythonie, błąd środowiska uruchomieniowego w VBScript. Wyjątek niesie HRESULT oraz opisowy komunikat, dzięki czemu możesz zalogować lub odzyskać sytuację.Convert(). Przykład: Convert(src, dst, "-c PDF -Watermark DRAFT -OwnerPassword secret -NoPrint").windowsservercore, ale nie na mniejszym obrazie nanoserver (któremu brakuje pełnego wsparcia COM). 30-dniowa wersja próbna to łatwy sposób na zweryfikowanie Twojego dokładnego środowiska docelowego.Convert() oczekuje lokalnej ścieżki pliku jako źródła. Jeśli musisz przetwarzać żywy URL, pobierz go najpierw w swojej aplikacji (dowolny klient HTTP zadziała), zapisz do pliku tymczasowego, a następnie przekaż ścieżkę tymczasową do konwertera.Pobierz wersję próbną i konwertuj pliki w kilka minut.
Nie jest wymagana karta kredytowa ani e-mail.

Powiązane tematy
Konwersja HTML do PDF z wiersza poleceń — wsadowy konwerter serwerowy