Mupdf
Author: a | 2025-04-23
MuPDF 1.13.0 for Windows 32 bit MuPDF AGPL Release: MuPDF Commercial License : MuPDF 1.13.0 for Android MuPDF on Google Play: MuPDF Commercial License: MuPDF 1.13.0 Source for all platforms MuPDF AGPL Release Note 1: MuPDF Commercial License
ArtifexSoftware/mupdf: mupdf mirror - GitHub
📰 MuPDF.js📢 IMPORTANT NOTEThere is now an official package supported by the MuPDF developers,which is likely to be more up-to-date and better maintained.👉 You can find it here.I recommend migrating to the official package, as I am no longermaintaining this one due to time constraints.To nudge you in the right direction, I've pushed a major version of thispackage that is a stub and will throw an error if you try to use it.If you really want to use this package, (or if you need it to run legacycode that depends on it, and you can't update that code for some reason)you can still install it by manually installing version 1.1.1.[]This is a port of MuPDF to javascript and webassembly, giving you the following:🔥 Blazing fast rendering of PDFs to PNG, SVG and even HTML💼 Run in the web browser or your server. Basically any platform that supports Webassembly!☑ Supports Typescript🗺️ A super simple API that's also completely flexible, see below...🏁 Getting Startedyarn add mupdf-js# ornpm i mupdf-jsBasic UsageBefore you do any processing, you'll need to initialise the MuPdf library:import { createMuPdf } from "mupdf-js";async function handleSomePdf(file: File) { const mupdf = await createMuPdf(); //...}In the browser, you'll most likely retrieve a File or Blob object from an html tag, supplied by a user.You'll need to convert the file firstly to an ArrayBuffer, then to a Uint8Array:import { createMuPdf } from "mupdf-js";async function handleSomePdf(file) { const mupdf = await createMuPdf(); const buf = await file.arrayBuffer(); const arrayBuf = new Uint8Array(buf); //...}Once you have this, you can load the file into the MuPdf environment, creating a MuPdf document:import { createMuPdf } from "mupdf-js";async function handleSomePdf(file) { const mupdf = await createMuPdf(); const buf = await file.arrayBuffer(); const arrayBuf = new Uint8Array(buf); const doc = mupdf.load(arrayBuf);}You now have three different options to render The PDF document:import { createMuPdf } from "mupdf-js";async function handleSomePdf(file) { const mupdf = await createMuPdf(); const buf = await file.arrayBuffer(); const arrayBuf = new Uint8Array(buf); const doc = mupdf.load(arrayBuf); // Each of these returns a string: const png = mupdf.drawPageAsPNG(doc, 1, 300); const svg = mupdf.drawPageAsSVG(doc, 1); const html = mupdf.drawPageAsHTML(doc, 1);}Conversion OptionsPNGmupdf.drawPageAsPNG(document, page, resolution);Arguments:document: a MuPdf document objectpage: the page number to be rendered, starting from 1resolution: the DPI to use for rendering the fileReturns: an uncompressed PNG image, encoded as a base64 data URI.SVGmupdf.drawPageAsSVG(document, page);Arguments:document: a MuPdf document objectpage: the page number to be rendered, starting from 1Returns: an SVG file with the PDF document rendered as image tiles.HTMLmupdf.drawPageAsHTML(document, page);Arguments:document: a MuPdf document objectpage: the page number to be rendered, starting from 1Returns: an HTML file that uses absolute positioned elements for layout.Text operationsGet text from pagemupdf.getPageText(document, page);Arguments:document: a MuPdf document objectpage: the page number to be rendered, starting from 1Returns: string containing all text collected from pageSearch on the pagemupdf.searchPageText(document, page, searchString, maxHits);Arguments:document: a MuPdf document objectpage: the page number to be rendered, starting from 1searchString: string to searchmaxHits: the maximum possible number of matches (it stops search when reaches this limit)Returns: array of found rectangles of text matches ({x: number, y: number, w: number, h: number}[])You should set maxHits to an appropriate level that a user would expect (for example 100), or allow users to set their own limit. Alternatively, if you want to allow effectively unlimited search hits (and risk running out of memory), you can set it to C's maximum unsigned 32-bit integer size, which is 4294967295.ContributingSee CONTRIBUTING.mdLicenseAGPL, subject to the MuPDF license.MuPDF on the command line - MuPDF 1.26.0 documentation
A PDF reader optimized for high quality graphics rendering.MuPDF is a free PDF viewer which acts as an alternative to Acrobat Reader. One of the advantages of MuPDF is its speed when compared to Adobe's free reader.Since this is a portable application, installation is not necessary. With that said, just run the application and open the documents you would like to read.After MuPDF has loaded, a file browser is displayed where you can load a PDF document. After it's been loaded, the user interface of this application is lightweight and easy-to-use. Browse pages of the PDF document with your keyboard or mouse. MuPDF also provides a quick search feature to find text within a document. Other features include zooming, full screen mode and page rotation.Overall, MuPDF is a small, lightweight and free PDF reader which has little in terms of downsides, especially when considering the competition.Features of MuPDFAnnotations: Annotate PDF documents directly.Bookmarks: Add bookmarks to quickly jump to different pages.Conversion: Convert PDF documents to other formats.Form Filling: Fill in PDF forms.Measurement: Measure distances and areas in PDF documents.Navigation: Quickly navigate through documents.Outlines: Create and edit bookmarks and outlines.Printing: Print PDF documents with advanced options.Rendering: High-quality, accurate rendering of PDF documents.Scripting: Automate MuPDF with JavaScript scripts.Security: Encrypt and decrypt documents with passwords.Speed: Fast, responsive display of PDF and XPS documents.Text Extraction: Extract text from documents.Text Search: Search for words and phrases.Viewing: View documents in single page, facing, or continuous mode.Compatibility and LicenseMuPDF has been released under the open source GPL license on Windows from PDF software. The license provides the options to freely download, install, run and share this program without any restrictions. The source code for MuPDF should be freely available and modifications are certainly permitted as well as the option to inspect the software.What version of Windows can MuPDF run on?MuPDF can be used on a computer running Windows 11 or Windows 10. Previous versions of the OS shouldn't be a problem with Windows 8 and Windows 7 having been tested. It runs on both 32-bit and 64-bit systems with no dedicated 64-bit download provided.Filed under: MuPDF DownloadFree PDF SoftwareOpen source and GPL softwarePortable SoftwarePDF Viewing Software. MuPDF 1.13.0 for Windows 32 bit MuPDF AGPL Release: MuPDF Commercial License : MuPDF 1.13.0 for Android MuPDF on Google Play: MuPDF Commercial License: MuPDF 1.13.0 Source for all platforms MuPDF AGPL Release Note 1: MuPDF Commercial LicenseMuPDF JavaScript - MuPDF 1.26.0 documentation - Read the
Official 64-bit version of Sumatra was released.[23]The Sumatra source code was originally hosted on Google Code. Due to US export legal restrictions, it was unavailable "in countries on the United States Office of Foreign Assets Control sanction list, including Cuba, Iran, North Korea, Sudan and Syria."[24][25] The source code is currently hosted on GitHub.[26]The first version of Sumatra PDF, designated version 0.1, was based on Xpdf 0.2 and was released on 1 June 2006. It switched to Poppler from version 0.2. In version 0.4, it changed to MuPDF for more speed[4] and better support for the Windows platform. Poppler remained as alternative engine for a time, and from version 0.6 to 0.8 it was automatically used to render pages that MuPDF failed to load. Poppler was removed in version 0.9, released on 10 August 2008.In July 2009, Sumatra PDF changed its license from GNU GPLv2 to GNU GPLv3 to match the same license change on MuPDF.[27]Since version 0.9.4, Sumatra supports the JPEG 2000 format.[citation needed]Version 1.0 was released on 17 November 2009, after more than three years of cumulative development. Version 2.0 was released on 2 April 2012, over two years after the release of version 1.0.[10]In 2007, the first unofficial translations were released by Lars Wohlfahrt[28] before Sumatra PDF got official multi-language support.In October 2015, version 3.1 introduced a 64-bit version, in addition to their original 32-bit version.[23][29]Name and artworkEarly Logo of Sumatra PDF, inspired by the Watchmen comic.The author has indicated that the choice of the name "Sumatra" MuPDF viewer is an app for reading PDF, XPS, CBZ, and unprotected EPUB documents.This is a slim version of the MuPDF app, which focuses on reading only. It does not support editing annotations or filling out forms.Tapping on the left and right side of the screen will flip to the previous and next pages. Tapping in the middle of the screen will bring up or hide the tool bars.The link button in the tool bar will toggle highlighting hyperlinks. When the links are highlighted they are also active and tappable. You can pinch to zoom in and out. When zoomed in, tapping will scroll to advance to the next screenful of content.The toolbar also has a search button, and possibly a table of contents button.The scrubber at the bottom of the screen will let you quickly go to any place in the document.With the "Overview" system button, you can go back to the file chooser and open multiple documents at once. Show more Show lessUsing MuPDF with C - MuPDF 1.23.0 documentation
It’s been over a decade since I used adobe reader (currently a Linux user, and sumatra user when I had windows). And I honestly don’t remember what made adobe reader bad (I just remember that it was bad). Do you care to explain what it is specifically about adobe reader that is so bad compared to Sumatra? The pre-CC Adobe Reader XI functions pretty much the same as Sumatra and doesn't have those anti-features What does it add to plain mupdf (on which it seems to be based)? I love the clean, elegant interface of mupdf, and I can't imagine how could you ever improve on that. Lots and lots of additional features.More formats supported, more view options, remembers the history of files, command palette to quickly access all functionality, way more keyboard shortucts, customizable keyboard shortucts, more customizability of the UI.Maybe I shouldn't comment on the competition but mupdf on windows is very bare bones. No. MuPDF only supports a limited subset of HTML5 and CSS to support basic EPUB and FictionBook2. This app's still going?!? Man, this was my official PDF/eBook/CBZ reader when my life revolved around cheap PC laptops, Win2K/Classic theme, and lots of low-footprint apps like Foobar2000, uTorrent (pre-monetization), etc We've been using Sumatra at my work in New Zealand for the past year.I moved back to Windows after years of Linux use. I was shocked at how slow PDFS opened. So, I started looking for a replacement. Sumatra was by far the best. I used to use Sumatra all the time. It's fast and light, exactly what I'm looking forUnfortunately BSI added DRM to the PDFs which means I'm now locked down to Acrobat As a lawyer, SumatraPDF is my go to for everything. Fast, snappy, and works with zero-config problems through Wine on Linux. As a cross-platform solution for simple PDF files, I just use Firefox. But SumatraPDF reads much more than just PDF files, and for everything else, I haven't found a good, cross-platform alternative for the platforms I usually use (Linux, Windows and macOS). > macIt works in macOS trough Wine. Try `brew install wine` `wine64 ~/.wine/drive_c/SumatraPDF-3.4.3-64.exe` According to your recent experience, how does LibreOffice Draw compare to Foxit PDF editor?I remember the days when I needed a collection of PDF-editing apps because some PDFs only rendered correctly in some specific editor and other PDFs in another editor. Today 100% of PDFs seam to be editable in LibreOffice Draw without any problems. it is not rendered as good as in Foxit, but LOD will do the job for free, I use them for different purposes - Foxit for viewing (the basic version I use can't edit PDF directly), writing comments and maybeGitHub - maplefan/MuPDF: MuPDF PDF XPS
Kill in Linux after a certain amount of time.. ex 10s, 5s, 1s of sending original kill signal.pdfium.threadKillAfter=5s# This is a basic regex to allow any character to be passed in, this should be overriden by project# ^\\/nas\\/vault\\d+\\/alf_data\\/contentstore\\/\\d+\\/\\d+\\/\\d+\\/\\d+\\/\\d+\\/((?!(.*[;|]+.*))(?!(.*&&.*))(?!(.*\\$\\(.*))(?!(.*\\|\\|.*))).+# This is an example that requires the path to start with /nas/vault##/alf_data_contentstore/##/##/##/##/document-name without allowing && $( || | ; as they are command injection threats in linuxpdfium.pathRegexPattern=.+#The max amount of processes to use when transforming content.pdfium.maxProcessCount=4PdFium / GhostScript / MuPDFEvery page of a document is transformed using either PdFium, GhostScript, or MuPDF. So anything that can be done to improve the performance of this process will help. By default, AEV uses PDFium. A third-party license may be required for using MuPDF or GhostScript. Use a solid state drive (SSD) for your temporary directories. Even better performance, use a RAM Disk/tempfs like /dev/shm as that is faster than even an SSD.AEV performanceEnterprise Viewer has a configuration to toggle if a “low-res” and a “high-res” image are requested for a page. Toggle the progressiveReloadSteps=0 property to reduce the load on the system and only load the high-resolution rather than both. There are times that the high-res call could complete before the other call if the system is really bogged down, so the less load that can be triggered in general has been found to have a positive impact at peak usage.AEV transformationsShould the embedded OpenContent transformations not scale to the level necessary for your implementation, the “Alfresco Enterprise Viewer Transformation” application can operate at scale. This application is also known as “Alfresco Enterprise Viewer Transformations”, or AEVT for short. See Installing Alfresco Enterprise Viewer TransformerAEVT/OAT is used on Alfresco PaaS.. MuPDF 1.13.0 for Windows 32 bit MuPDF AGPL Release: MuPDF Commercial License : MuPDF 1.13.0 for Android MuPDF on Google Play: MuPDF Commercial License: MuPDF 1.13.0 Source for all platforms MuPDF AGPL Release Note 1: MuPDF Commercial LicenseUsing MuPDF with C - MuPDF 1.26.0 documentation - Read the
I'm especially proud of adding Command Palette (Ctrl + K).And you can now customize keyboard shortcuts.And created so that you can vote on features I should implement next (people really want the dark theme).And I'm making daily builds with seamless auto-updates so that people interested in latest features can get them as soon as they are implemented (I've already added .avif support, and commands to re-open last closed file and clear history) I have now been on Linux for quite some time but I remember how happy I was when I found as a teenager your fast no bs pdf reader for my not at all powerful old windows machine. The sheer joy of kicking Adobe Acrobat reader out of the system tray... I'll add to the list of thank yous, I've been a SumatraPDF user for years and never looked back. It's everything I love in a program: light, fast, does one job perfectly. Kudos from Belgium ! :) I don't know whether this would be you or mupdf -- I suspect the latter -- but I'd really like to be able change the line spacing (i.e. the "leading") in the epub reading mode.I find line spacing to be one of the larger factors contributing to readability (or lack thereof).Regardless, thanks, and cheers! Incredible piece of work. Thank you for dealing with the PDF spec(?) so I don’t have to. That is mostly done by the MuPDF library, which SumatraPDF provides a nice interface for (along with supporting many other formats).I think the difficulty of PDFs is not so much the spec, but the many many non-spec-compliant PDF files out there that need workarounds. Thank you for such an amazing product, I have been using Sumatra everywhere I can for years. In an era of bloated software you showed there is another way. Thank you for your work on SumatraPDF, it's the best PDF and epub viewer I've ever used. Thank you very much for adding font recognition in a second properties window. I've been able to rid myself of Acrobat for months now. My only critique would be that the font list would be better kept in the first properties window. One Ctrl+D is more elegant than two.Would a Dark Mode come in the next release? I don't use Windows, but when I have to, SumatraPDF is one of the first things I install. Thanks. Thanks, I'm proxying downloads via cloudflare (otherwise I would pay $500/mo bandwidth bill) and sometimes it breaks.I've cleared the cache and it seems to be working (at least for me). I've been dying for a proper dark theme. I think there's been a workaround/hack to do something like it, but it doesn't lookComments
📰 MuPDF.js📢 IMPORTANT NOTEThere is now an official package supported by the MuPDF developers,which is likely to be more up-to-date and better maintained.👉 You can find it here.I recommend migrating to the official package, as I am no longermaintaining this one due to time constraints.To nudge you in the right direction, I've pushed a major version of thispackage that is a stub and will throw an error if you try to use it.If you really want to use this package, (or if you need it to run legacycode that depends on it, and you can't update that code for some reason)you can still install it by manually installing version 1.1.1.[]This is a port of MuPDF to javascript and webassembly, giving you the following:🔥 Blazing fast rendering of PDFs to PNG, SVG and even HTML💼 Run in the web browser or your server. Basically any platform that supports Webassembly!☑ Supports Typescript🗺️ A super simple API that's also completely flexible, see below...🏁 Getting Startedyarn add mupdf-js# ornpm i mupdf-jsBasic UsageBefore you do any processing, you'll need to initialise the MuPdf library:import { createMuPdf } from "mupdf-js";async function handleSomePdf(file: File) { const mupdf = await createMuPdf(); //...}In the browser, you'll most likely retrieve a File or Blob object from an html tag, supplied by a user.You'll need to convert the file firstly to an ArrayBuffer, then to a Uint8Array:import { createMuPdf } from "mupdf-js";async function handleSomePdf(file) { const mupdf = await createMuPdf(); const buf = await file.arrayBuffer(); const arrayBuf = new Uint8Array(buf); //...}Once you have this, you can load the file into the MuPdf environment, creating a MuPdf document:import { createMuPdf } from "mupdf-js";async function handleSomePdf(file) { const mupdf = await createMuPdf(); const buf = await file.arrayBuffer(); const arrayBuf = new Uint8Array(buf); const doc = mupdf.load(arrayBuf);}You now have three different options to render
2025-04-08The PDF document:import { createMuPdf } from "mupdf-js";async function handleSomePdf(file) { const mupdf = await createMuPdf(); const buf = await file.arrayBuffer(); const arrayBuf = new Uint8Array(buf); const doc = mupdf.load(arrayBuf); // Each of these returns a string: const png = mupdf.drawPageAsPNG(doc, 1, 300); const svg = mupdf.drawPageAsSVG(doc, 1); const html = mupdf.drawPageAsHTML(doc, 1);}Conversion OptionsPNGmupdf.drawPageAsPNG(document, page, resolution);Arguments:document: a MuPdf document objectpage: the page number to be rendered, starting from 1resolution: the DPI to use for rendering the fileReturns: an uncompressed PNG image, encoded as a base64 data URI.SVGmupdf.drawPageAsSVG(document, page);Arguments:document: a MuPdf document objectpage: the page number to be rendered, starting from 1Returns: an SVG file with the PDF document rendered as image tiles.HTMLmupdf.drawPageAsHTML(document, page);Arguments:document: a MuPdf document objectpage: the page number to be rendered, starting from 1Returns: an HTML file that uses absolute positioned elements for layout.Text operationsGet text from pagemupdf.getPageText(document, page);Arguments:document: a MuPdf document objectpage: the page number to be rendered, starting from 1Returns: string containing all text collected from pageSearch on the pagemupdf.searchPageText(document, page, searchString, maxHits);Arguments:document: a MuPdf document objectpage: the page number to be rendered, starting from 1searchString: string to searchmaxHits: the maximum possible number of matches (it stops search when reaches this limit)Returns: array of found rectangles of text matches ({x: number, y: number, w: number, h: number}[])You should set maxHits to an appropriate level that a user would expect (for example 100), or allow users to set their own limit. Alternatively, if you want to allow effectively unlimited search hits (and risk running out of memory), you can set it to C's maximum unsigned 32-bit integer size, which is 4294967295.ContributingSee CONTRIBUTING.mdLicenseAGPL, subject to the MuPDF license.
2025-04-08A PDF reader optimized for high quality graphics rendering.MuPDF is a free PDF viewer which acts as an alternative to Acrobat Reader. One of the advantages of MuPDF is its speed when compared to Adobe's free reader.Since this is a portable application, installation is not necessary. With that said, just run the application and open the documents you would like to read.After MuPDF has loaded, a file browser is displayed where you can load a PDF document. After it's been loaded, the user interface of this application is lightweight and easy-to-use. Browse pages of the PDF document with your keyboard or mouse. MuPDF also provides a quick search feature to find text within a document. Other features include zooming, full screen mode and page rotation.Overall, MuPDF is a small, lightweight and free PDF reader which has little in terms of downsides, especially when considering the competition.Features of MuPDFAnnotations: Annotate PDF documents directly.Bookmarks: Add bookmarks to quickly jump to different pages.Conversion: Convert PDF documents to other formats.Form Filling: Fill in PDF forms.Measurement: Measure distances and areas in PDF documents.Navigation: Quickly navigate through documents.Outlines: Create and edit bookmarks and outlines.Printing: Print PDF documents with advanced options.Rendering: High-quality, accurate rendering of PDF documents.Scripting: Automate MuPDF with JavaScript scripts.Security: Encrypt and decrypt documents with passwords.Speed: Fast, responsive display of PDF and XPS documents.Text Extraction: Extract text from documents.Text Search: Search for words and phrases.Viewing: View documents in single page, facing, or continuous mode.Compatibility and LicenseMuPDF has been released under the open source GPL license on Windows from PDF software. The license provides the options to freely download, install, run and share this program without any restrictions. The source code for MuPDF should be freely available and modifications are certainly permitted as well as the option to inspect the software.What version of Windows can MuPDF run on?MuPDF can be used on a computer running Windows 11 or Windows 10. Previous versions of the OS shouldn't be a problem with Windows 8 and Windows 7 having been tested. It runs on both 32-bit and 64-bit systems with no dedicated 64-bit download provided.Filed under: MuPDF DownloadFree PDF SoftwareOpen source and GPL softwarePortable SoftwarePDF Viewing Software
2025-03-29Official 64-bit version of Sumatra was released.[23]The Sumatra source code was originally hosted on Google Code. Due to US export legal restrictions, it was unavailable "in countries on the United States Office of Foreign Assets Control sanction list, including Cuba, Iran, North Korea, Sudan and Syria."[24][25] The source code is currently hosted on GitHub.[26]The first version of Sumatra PDF, designated version 0.1, was based on Xpdf 0.2 and was released on 1 June 2006. It switched to Poppler from version 0.2. In version 0.4, it changed to MuPDF for more speed[4] and better support for the Windows platform. Poppler remained as alternative engine for a time, and from version 0.6 to 0.8 it was automatically used to render pages that MuPDF failed to load. Poppler was removed in version 0.9, released on 10 August 2008.In July 2009, Sumatra PDF changed its license from GNU GPLv2 to GNU GPLv3 to match the same license change on MuPDF.[27]Since version 0.9.4, Sumatra supports the JPEG 2000 format.[citation needed]Version 1.0 was released on 17 November 2009, after more than three years of cumulative development. Version 2.0 was released on 2 April 2012, over two years after the release of version 1.0.[10]In 2007, the first unofficial translations were released by Lars Wohlfahrt[28] before Sumatra PDF got official multi-language support.In October 2015, version 3.1 introduced a 64-bit version, in addition to their original 32-bit version.[23][29]Name and artworkEarly Logo of Sumatra PDF, inspired by the Watchmen comic.The author has indicated that the choice of the name "Sumatra"
2025-04-13MuPDF viewer is an app for reading PDF, XPS, CBZ, and unprotected EPUB documents.This is a slim version of the MuPDF app, which focuses on reading only. It does not support editing annotations or filling out forms.Tapping on the left and right side of the screen will flip to the previous and next pages. Tapping in the middle of the screen will bring up or hide the tool bars.The link button in the tool bar will toggle highlighting hyperlinks. When the links are highlighted they are also active and tappable. You can pinch to zoom in and out. When zoomed in, tapping will scroll to advance to the next screenful of content.The toolbar also has a search button, and possibly a table of contents button.The scrubber at the bottom of the screen will let you quickly go to any place in the document.With the "Overview" system button, you can go back to the file chooser and open multiple documents at once. Show more Show less
2025-04-04