Free tools Windows power users keep installed
One-click scans. No signup required.
Use WeasyPrint’s Python API to convert HTML to PDF on Ubuntu, and make sure the font that covers your target Indian-language script is installed and visible to the rendering process. Then verify the selected font with Fontconfig and render a sample containing the actual text you need. No single font or Ubuntu package is established here as a guaranteed fit for every Indian script.
Use WeasyPrint to generate the PDF
WeasyPrint accepts HTML and writes PDF through its Python API. Its current Ubuntu installation requirements include native libraries, so follow the current official installation instructions rather than relying on commands for an older Ubuntu release: WeasyPrint First Steps. The official documentation also covers installing through a distribution package or a virtual environment, depending on your setup.
- Install WeasyPrint using the route and native dependencies documented for your Ubuntu release.
- Confirm the installation with
weasyprint --info, which the documentation identifies as an installation-check utility. - Install or provide a font that covers the script in your document, then confirm that Fontconfig can find it.
- Set the font in your CSS and convert a representative HTML file to PDF.
Basic Python conversion:
from weasyprint import HTML
HTML(filename="input.html").write_pdf("output.pdf")
The filename can be replaced with an HTML string or another supported HTML input. For a production application, verify the API and installation details against the current WeasyPrint documentation linked above.
Install and verify a font for the script you need
WeasyPrint uses Pango and Fontconfig to find and use fonts. A font that renders Latin text is not necessarily suitable for Devanagari, Bengali, Tamil, Telugu, or another Indian-language script. Choose a font with coverage for the exact script and characters in your document; the available sources do not establish a particular font family or Ubuntu package as suitable for every script.
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallCrashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minute#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.
Check what Ubuntu and the renderer can see
Use Fontconfig’s utilities to inspect installed fonts and the family selected for a name or pattern:
fc-list
fc-match "Your Font Family"
Replace Your Font Family with the family name you intend to use. Run these checks in the same container, host, and account environment that will generate the PDFs. A font visible in an interactive shell may not be available to a service running under a different user or with a different font configuration.
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.
Request the font in CSS
For a system-installed family, set it in your stylesheet and include fallbacks:
body {
font-family: "Your Font Family", sans-serif;
}
Use the actual installed family name, and do not treat the fallback as proof of script coverage. If the font is supplied as a file, CSS can load it with @font-face. WeasyPrint’s documented setup uses a FontConfiguration for both the stylesheet and the PDF-writing call when fonts are loaded this way.
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.
from weasyprint import HTML, CSS
from weasyprint.text.fonts import FontConfiguration
font_config = FontConfiguration()
css = CSS(
string="""
@font-face {
font-family: 'DocumentFont';
src: url('/path/to/font-file.ttf');
}
body { font-family: 'DocumentFont', sans-serif; }
""",
font_config=font_config,
)
HTML(filename="input.html").write_pdf(
"output.pdf",
stylesheets=[css],
font_config=font_config,
)
Replace the example path with a font file available to the process. Check the current WeasyPrint documentation for the precise supported font formats and API details for your installed release. Confirm that you have the rights needed to deploy the chosen font with your application.
Validate Indian-language text in the resulting PDF
- Prepare a short HTML sample with representative text from every script you need, including the conjuncts, vowel signs, or diacritics present in your real content.
- Run
fc-matchfor the requested family and inspect the PDF after conversion in a viewer. - If text extraction is part of your workflow, check extracted text as well; visual rendering and text extraction serve different purposes.
- Repeat the check using the same Ubuntu image, service account, font files, and configuration used in production.
This is a validation workflow based on WeasyPrint’s documented font matching and missing-glyph guidance, not a guarantee about any particular font’s rendering quality. Test the actual scripts and content rather than relying only on the family name or a Latin-only sample.
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
Troubleshoot missing glyphs, squares, or unexpected fonts
| Symptom | Likely check | What to do |
|---|---|---|
| Letters are missing or displayed as squares | The selected font may not cover the characters, or may not be available to WeasyPrint. | Check visibility with fc-list and the selected family with fc-match. Install or provide a font with the needed coverage, then try explicit @font-face loading if appropriate. |
| The requested family is not selected | The family may be misspelled, absent from Fontconfig, or unavailable to the account running the conversion. | Use the family name shown by the system, make the font visible to the rendering process, and rerun fc-match in that environment. |
| It works locally but not in a deployed service | The production image or service account may have different native libraries, font files, or Fontconfig visibility. | Use the same environment for the font checks and PDF generation; ensure the production installation follows the current WeasyPrint instructions for its Ubuntu release. |
| The PDF cannot be generated after installation | WeasyPrint may be missing a required native dependency or may not be installed in the Python environment running the code. | Recheck the current installation instructions and run weasyprint --info in the relevant environment. |
WeasyPrint’s troubleshooting documentation states: “If no character is drawn in the generated PDF, or if you get squares instead of letters, you have to install fonts and make them available to WeasyPrint.” See First Steps for the current guidance.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Account for deployment and security
Installation is not just a Python-package decision: the renderer depends on native libraries and on fonts visible through Pango and Fontconfig. Pin and reproduce the environment you deploy, and test the PDF output when you update its Ubuntu base image or rendering dependencies. Exact dependency packages can vary with release, so use the current installation page instead of carrying forward an older release’s package list. An older Ubuntu Jammy manual is available at Ubuntu Jammy’s WeasyPrint manual, but it should not substitute for current installation guidance.
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Repair Windows errors before they cause bigger problems3Fix the driver behind crashes, sound loss and screen glitchesBest 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.
Do not process untrusted HTML or CSS without addressing WeasyPrint’s documented security risks. Review the current security guidance before accepting user-controlled markup, styles, or resource references.
Or skip the browser setup
If your goal is a screenshot of a web page rather than a PDF generated from your own HTML, ScreenshotNeo offers a website screenshot API and MCP server. Its one-call API can return an image or PDF:
Quick Recap
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
See the ScreenshotNeo API documentation for setup and options. Cookie banners are accepted and removed before capture, along with supported newsletter popups and chat widgets. Bot checks, blank pages, and failed loads are never billed; responses identify the page verdict and billing status. An MCP server lets AI agents use screenshot tools, and the free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000.
Sign up for ScreenshotNeo’s free plan.
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.

