To reuse downloaded CSS, images and fonts across wkhtmltopdf jobs, set a stable, writable cache directory with --cache-dir, and make each document request the same immutable asset paths or URLs. The option identifies the web cache directory, but official documentation does not specify cache eviction, persistence, cache format or concurrent-writer behavior. Test warm-cache reuse with the exact wkhtmltopdf build, filesystem and worker count you will deploy.
What wkhtmltopdf’s cache can—and cannot—do
--cache-dir <path> sets the web cache directory. It is the relevant command-line option when multiple PDF conversions need to reuse fetched web resources. Use a location that exists, is writable by the renderer process and remains available between jobs if you expect reuse.
The option alone does not establish that a particular response will be reused. The official usage documentation does not specify eviction rules, persistence guarantees, cross-process locking or a required cache format. Nor does the available documentation give a cache-hit rate or a standard batch speedup. Treat reuse between processes as something to validate in your deployment, not as a guarantee.
For consistent output and fewer external dependencies, pre-stage static assets in the worker image or a controlled local asset directory and reference them consistently from every HTML document. A shared HTTP asset origin can also work, but it keeps the network and cache behavior in the rendering path.
#1 Best Overall
- Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
- Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
- Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
- Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
- 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.
Set up a repeatable batch workflow
1. Pin the rendering environment
The wkhtmltopdf project download page lists 0.12.6 as its stable series, released June 11, 2020: wkhtmltopdf downloads. Record the exact binary and whether it is a patched-Qt build, along with the operating-system image, installed fonts and fontconfig configuration. These can affect rendering, so workers in one batch should use the same inputs.
2. Prepare shared assets before converting documents
Download or build CSS, images and fonts before launching the PDF jobs. Either serve them from a controlled internal origin or place them in a directory included in the worker image. This makes asset availability easier to inspect and avoids relying on a public CDN during every conversion.
Use consistent paths across documents. If an asset changes, give it a new versioned name—for example, styles.2026-09.css or a content-hash filename—rather than silently replacing the contents at a path that may already have been cached. Versioned names are an operational invalidation strategy, not a special wkhtmltopdf cache feature.
3. Assign a writable cache directory
For example, create /var/cache/wkhtmltopdf in the worker image, set ownership and permissions for the account that runs wkhtmltopdf, and pass it on each invocation:
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →wkhtmltopdf --cache-dir /var/cache/wkhtmltopdf input.html output.pdf
For an isolated worker, a per-worker cache directory is easier to reason about. For multiple processes sharing one directory, test with the same concurrency and filesystem as production. The documentation does not define whether simultaneous writers safely coordinate or how long cached entries remain available.
Rank #2
- 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
- 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
- Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
- 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
- What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.
4. Permit only the local files you need
When HTML references local assets, choose the narrowest local-file access policy that works. The command-line reference documents --allow <path> for approved paths, --enable-local-file-access for broader access and --disable-local-file-access to block local-file access. See the wkhtmltopdf command-line usage reference.
For example, allow only a packaged asset directory rather than granting broad access:
wkhtmltopdf --cache-dir /var/cache/wkhtmltopdf
--allow /app/pdf-assets
/app/jobs/invoice.html /app/jobs/invoice.pdf
Use local paths that resolve from the renderer’s perspective. If documents are generated in a container, the asset directory must exist inside that container with the expected permissions.
5. Decide how missing assets should affect a job
wkhtmltopdf exposes page and media load-error policies, image-loading controls, JavaScript controls, custom headers, cookies and a JavaScript delay. The option reference describes the available switches; choose policies according to the document’s requirements. For an invoice or regulated document, silently skipping a required image or stylesheet can be worse than failing the conversion. Configure the relevant load-error behavior to fail the job when completeness matters, and monitor the process result rather than accepting a PDF solely because a file was created.
Keep image DPI, JPEG quality and related output controls consistent across workers when byte size or visual appearance must be predictable. Installed fonts and fontconfig also affect runtime rendering; the project’s download guidance covers these deployment considerations at wkhtmltopdf downloads.
Rank #3
- Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
- Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
- Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
- Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
- What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.
Choose where assets should live
| Strategy | Best fit | Trade-off |
|---|---|---|
| Local, pre-staged files | High-volume batches that need repeatable output | Requires packaging assets and controlling local-file access. |
Shared HTTP origin with --cache-dir |
Workers that use a common asset service | Depends on the origin, HTTP responses and cache reuse; test concurrent access and headers. |
| Per-worker cache directories | Isolated workers or short-lived containers | Workers may download duplicate resources, and each cache consumes storage. |
| Data URIs or inlined CSS | Small critical styles or logos | Increases HTML size and makes content updates harder to manage. |
The cache option and local-file switches are documented behaviors. Which strategy performs best depends on the deployment, asset sizes and workload; measure it rather than assuming a particular approach is faster.
Measure warm-cache behavior in your environment
Compare a cold run with a warm run using the same document set, renderer build, worker count, cache path, asset sizes and network conditions. Record elapsed time, failures and output checks such as whether required assets appear in the PDFs. Repeat runs enough to see whether results are stable. A warm run is meaningful only if the renderer is actually reusing the relevant resources; do not infer a cache hit from a successful conversion alone.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
For a useful operational comparison, keep the asset set and concurrency fixed, then compare shared-cache and per-worker-cache configurations. Note the filesystem type and whether workers are ephemeral. Do not present a speedup as universal: the project documentation provides no benchmark establishing a cache-hit percentage or fixed batch improvement.
Security boundaries for HTML and local assets
The project warns: “Do not use wkhtmltopdf with any untrusted HTML – be sure to sanitize any user-supplied HTML/JS, otherwise it can lead to complete takeover of the server it is running on!” Its AppArmor guidance describes using --disable-local-file-access to block local-file reads and recommends mandatory access controls for untrusted files.
- Run rendering workers with the least filesystem permissions they need.
- Do not let user-controlled markup choose arbitrary local asset paths.
- Restrict network access where the job does not need it.
- Use approved asset directories and container or operating-system controls as additional boundaries; do not treat a cache directory as a security sandbox.
Troubleshoot common batch failures
Cache directory cannot be created or written
Check that the directory exists inside the worker’s environment and that the renderer’s user can write to it. Container users and host users may have different numeric IDs, so verify permissions from inside the running container.
Rank #4
- Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
- Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
- Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
- Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
- Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft
Local CSS or images do not load
Confirm that the HTML references the correct file URL or path and that the file is present where wkhtmltopdf runs. Add a narrow --allow rule for the asset directory, or use broader local access only if necessary. Check whether local access has been disabled by another option.
Concurrent workers behave inconsistently
Since cross-process locking is not specified in the official documentation, reproduce the production process count and filesystem in a controlled test. Compare an isolated cache per worker with a shared cache, and check for incomplete or missing assets rather than assuming shared-cache writes are coordinated.
Updated styles or images appear stale
Use versioned or content-hash filenames when assets change. This avoids depending on undocumented eviction behavior to distinguish new content from an earlier response.
The PDF exists but required content is missing
Review page and media load-error policies, image-loading settings, JavaScript behavior and any configured delay. For required assets, configure the job to fail rather than silently produce an incomplete result, then inspect the renderer’s stderr and exit status.
Fonts or layout differ between workers
Compare the installed font files, fontconfig configuration, OS image and wkhtmltopdf build. Keep those inputs pinned across the batch; a shared asset cache does not make differing font environments equivalent.
Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Best Value
- 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
- Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
- Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
- HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
- What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.
Or skip the browser setup
If your actual task is capturing a website rather than rendering your own HTML documents, ScreenshotNeo offers a website screenshot API and MCP server. A GET request returns an image or PDF, so you do not need to set up a browser-rendering worker just to capture a URL. The following cURL example saves a WebP screenshot of Stripe; replace the URL with the page you need and use your API key. See the ScreenshotNeo documentation for request options.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
ScreenshotNeo removes cookie banners, newsletter popups and chat widgets before capture. Bot checks, blank pages and failed loads are not billed, and response headers say which page verdict applied and whether the request was billed. Its MCP server provides screenshot tools for Claude, Cursor and other MCP clients. The free plan includes 1,000 shots a month without a card; paid plans start at $5 for 3,000 shots.
Sign up for ScreenshotNeo’s free plan.
FAQ
Can I point every batch job at one shared cache directory?
You can configure a shared path with --cache-dir, but test concurrent access under your own process count and filesystem because official documentation does not specify cross-process locking.
Does wkhtmltopdf guarantee cache entries survive between runs?
No persistence guarantee or eviction policy is established in the official usage documentation. Verify behavior in the exact build and deployment you use.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchPC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Will caching make every PDF batch faster?
Not necessarily. No official benchmark establishes a fixed speedup; the result depends on assets, network, filesystem and concurrency, so measure cold and warm runs in your environment.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

