mrkeyoor.com_
Sun 01 Nov 01:51 UTC
AI Toolsevaluationupdated 31 Oct 2026

PDFMathTranslate review

Consider PDFMathTranslate for a supervised trial translating scientific papers, with a person checking the output against the original. PDFMathTranslate aims to preserve scientific PDF layouts. Our run on September 28, 2026 tested commit fc1bbbc. It recorded successful installation and build commands, but the test command exited with errors. We did not evaluate translated PDFs, translation accuracy, OCR quality, runtime speed, or a deployed service.

+165stars / 7d
Verdict

PDFMathTranslate merits a local evaluation when preserving a scientific paper's layout is part of the task. Our September 28, 2026 run at fc1bbbc established successful installation and build commands, alongside a test command that stopped with collection errors. It did not establish translation quality or deployment readiness. Inspect representative output, investigate the recorded advisories, and verify URL-fetching controls before offering a shared service.

We ran it

Lab card: what happened when we ran PDFMathTranslateScreenshot of PDFMathTranslate (pdf2zh.com)
Install✓ · 58s143 packages · 1103 MB
Build✓ · 13s
Tests✗ · 32s87 passed · 0 failed · 2 skipped · 3 errors of 90 (pytest)
Known vulns62(pip-audit)
Repo497 files~17,397 lines of source · 24.8 MB · 7 CI workflows · Dockerfile · tests dir

Answers from our run

Does PDFMathTranslate build from source?

Dependencies installed in 58 seconds (143 packages), and the build succeeded in 13 seconds. We cloned commit fc1bbbc into a clean Debian container with 3 CPUs and no project-specific setup.

Do PDFMathTranslate's tests pass?

No. The project's own test command finished in 32 seconds and reported 87 passed, 0 failed, 2 skipped, 3 collection errors (pytest).

Does PDFMathTranslate have known vulnerabilities in its dependencies?

pip-audit flagged 62 known advisories in the dependency tree at the time of our run.

Who should not use PDFMathTranslate?

Readers who need verified translation accuracy or layout fidelity from this review; our run did not measure either.

What are the alternatives to PDFMathTranslate?

BabelDOC, Zotero PDF2zh. PDFMathTranslate merits a local evaluation when preserving a scientific paper's layout is part of the task.

Setup3/5Installation and build exited zero, but the 1,103 MB footprint and three test collection errors leave environment work unresolved.
Docs4/5The supplied README explains installation routes, model downloads, modes, and OCR limitations. We did not execute every documented path.
CommunityN/AThe supplied independently fetched extracts do not establish adoption, maintainer response times, or the quality of community support.
Maturity3/5Multiple interfaces are documented, but our test command exited one and the recorded dependency advisories require investigation.

Who it’s for

Researchers willing to check translated papers against their originals.
Developers evaluating the documented CLI, Python API, or HTTP API for a PDF translation workflow.
Technical users who can manage model downloads, translation-service configuration, and dependency advisories.

Who it’s NOT for

Readers who need verified translation accuracy or layout fidelity from this review; our run did not measure either.
Release workflows that require a successful test command before adoption.
Operators planning to accept untrusted document URLs without investigating the supplied SSRF report and restricting outbound access.
Archives that need dependable recognition of handwriting, inline equations, or partially scanned pages.

Setup reality

Our sandbox used the Python 3.12 Bookworm image with 3 CPUs and 8 GB of memory. Installation took 58 seconds, recorded 143 installed packages and a 1,103 MB footprint, and exited zero. The build command took 13 seconds and exited zero. Those command outcomes do not establish that a PDF translation workload or CLI deployment worked.

The test command took 32 seconds and exited one. Its stored parser summaries record 87 passed, zero failed, 2 skipped, 3 errors, and total 90. These fields are not a reconciled count of unique, exhaustive tests. The raw footer separately reports 87 passed, 2 skipped, 5 warnings, and 3 errors in 21.61 seconds. That footer time differs from the harness command duration; neither replaces the other.

The pinned README documents Python 3.11 or 3.12, a separately downloaded layout model, and experimental precise mode requiring the PDFMathTranslate-next submodule. Our run did not verify provider connectivity or either mode's translation output.

What our run establishes

Our run on September 28, 2026 tested commit fc1bbbc. Installation and build commands exited zero in our sandbox; the test command exited one. This supports investigating the project locally, but leaves the central reader question unresolved: how well will it translate your papers?

The harness record stores each command's success flag, exit code, elapsed time, timeout status, and available output tail. Its parsed test counts are separate fields. The supplied record is an existing execution, not a new run for this correction. The MrKeyoor testing-methodology page explains the provenance and limits of this kind of evidence; its current procedure does not establish which methodology version governed this older run.

We did not inspect translated output, benchmark translation speed, exercise OCR, test translation providers, deploy the browser interface, or reproduce the reported URL-fetching vulnerability. Successful setup commands cannot answer those questions.

Why the test command stopped

The stored parser summaries report 87 passed, zero failed, 2 skipped, 3 errors, and total 90. They do not establish exhaustive unique test coverage, and the fields should not be added together to manufacture a new total. Skipped tests were not failures.

The raw tail names three collection errors inside the PDFMathTranslate-next kernel tree: test_cache.py, tests/config/test_main.py, and tests/config/test_model.py. Each traceback reports ModuleNotFoundError: No module named 'pdf2zh_next'. That identifies the immediate import failure in our sandbox. It does not establish whether the underlying cause belongs to packaging, environment setup, or the test invocation.

The raw pytest footer reports 21.61 seconds, while the harness records 32 seconds for the test command. We retain both with their respective scopes rather than treating the footer as the whole command duration.

What layout preservation means here

PDFMathTranslate aims to preserve scientific PDF layouts. The README at the tested commit describes translated and bilingual PDF output, with preservation of formulas, charts, the table of contents, and annotations. These are documented capabilities, not quality findings from our run.

For local setup, that README documents Python 3.11 or 3.12 and warns that downloading the layout model can encounter network problems. Experimental precise mode requires the PDFMathTranslate-next submodule. Evaluate the mode you intend to use rather than assuming the setup result proves that every interface and backend works.

Its experimental fast-mode OCR targets selected image-only pages. Pages with native text or existing OCR layers are skipped. The README limits the initial implementation to white-background scans and warns that handwriting or inline equations may be recognized incorrectly. A partially scanned page that already contains text can therefore fall outside this path.

The current README also documents an ultrafast mode added on October 2, 2026. That postdates our run and was not tested by it. The project says this mode uses native text positions, skips ONNX layout and OCR, and is best suited to PDFs that already contain native text. Its availability does not change the September measurements.

Audit findings and hosting require separate decisions

Our sandbox recorded 62 pip-audit advisories. The record also contains an audit packages field of 4, but supplies no scannedPackages value. Scan coverage is unknown. These are recorded dependency advisories, not demonstrated exploitability, a complete security assessment, or evidence that the translation code itself has 62 vulnerabilities.

The supplied issue extract reports that deployed instances can fetch internal addresses through caller-supplied document URLs. Issue 1188 is shown as open in the supplied extract and identifies commit 6243ca6 as the reporter's confirmed affected version. We did not reproduce the report or establish whether it applies unchanged to fc1bbbc.

Before accepting untrusted users, verify the report's status against your chosen revision and restrict outbound requests to internal networks and metadata services. The README's user-file authentication option controls access; it does not establish URL destination validation. Keep dependency triage and URL-fetching controls as separate checks.

Which adjacent project fits your workflow?

BabelDOC warns that direct API use is unsupported. Its README describes a document translation library intended for embedding, but also calls its CLI mainly a debugging tool and directs self-deployment users toward PDFMathTranslate 2.0. Investigate it as an engine dependency with those support limits in mind, rather than assuming its CLI is a supported replacement for the application.

Zotero PDF2zh integrates PDF2zh and PDF2zh_next into Zotero. Its documentation requires a running server for translation. It complements the translation engine with a reference-manager workflow; it does not remove the backend, provider configuration, or need to check the resulting PDFs.

How to read the ratings

The assessed scale is 1 to 5: 1 means major documented or observed obstacles, 2 means substantial setup or verification work, 3 means usable evidence with material unresolved limits, 4 means detailed support for the dimension with limited verification, and 5 requires strong direct evidence across that dimension. These are editorial judgments, not benchmark results. An unassessed dimension has no numerical rating.

Setup ease is 3 because installation and build completed, but the footprint and collection errors leave follow-up work. Documentation is 4 because the supplied README covers installation routes, modes, model downloads, and OCR limitations; we did not execute all its instructions. Maturity is 3 because the documented application has several interfaces, while our test command failed and dependency findings remain unresolved. Community is unassessed because the supplied independent extracts do not establish adoption, response times, or support quality.

For a useful next step, pin the intended revision and mode, resolve the collection errors in your environment, and translate representative papers. Check formulas, tables, reading order, and missing passages against the originals before relying on the output.

Alternatives

ProjectWhat it isPick it when
BabelDOC gh↗A scientific PDF translation library with a CLI primarily intended for debugging and a warning that direct API use is unsupported.Investigate it when evaluating the underlying document engine and its integration constraints. Its documentation directs end users needing self-deployment toward PDFMathTranslate 2.0.
Zotero PDF2zhA Zotero integration for PDF2zh and PDF2zh_next that requires a running translation server.Choose it as a complement when papers already live in Zotero and you want translation and attachments managed there.

What people are saying

  1. [github-trending] PDFMathTranslate/PDFMathTranslate

Sources

  1. PDFMathTranslate repository and README
  2. PDFMathTranslate v1.9.11 release
  3. Open SSRF report for URL translation
  4. PDFMathTranslate paper at ACL Anthology

More ai tools reviews

pr-agent · agent-sprite-forge · KiroCrew · Orkas · hypit · Paradev · the whole board →