comparison mupdf-source/docs/reference/c/introduction.md @ 3:2c135c81b16c

MERGE: upstream PyMuPDF 1.26.4 with MuPDF 1.26.7
author Franz Glasner <fzglas.hg@dom66.de>
date Mon, 15 Sep 2025 11:44:09 +0200
parents b50eed0cc0ef
children
comparison
equal deleted inserted replaced
0:6015a75abc2d 3:2c135c81b16c
1 # Introduction
2
3 This is the MuPDF C API guide for developers. In this document we will guide
4 you through the public and stable bits of the MuPDF library. This is intended
5 to both provide an introduction to new developers wanting to use low level
6 features of MuPDF, and as a reference guide to the public interface.
7
8 We will be explaining the basics, enough to get you started on a single
9 threaded application. There are more functions and data structures used
10 internally, and there are also ways to use MuPDF from multiple threads, but
11 those are beyond the scope of this document.
12
13 The functions and structures documented in this document are what we consider
14 stable APIs. They will rarely change, and if they do, any such changes will be
15 noted in the "api-changes" document along with instructions for how to update
16 your code.
17
18 ## Core
19
20 The core contains the runtime context, exception handling, and various string
21 manipulation, math, hash table, binary tree, and other useful functions.
22
23 ## I/O
24
25 The I/O module contains structures and functions for buffers of data, reading
26 and writing to streams, compression, and encryption.
27
28 ## Graphics
29
30 The graphics module contains graphic resource objects like colors, fonts,
31 shadings, and images.
32
33 ## Device
34
35 The device interface is how we provide access to the contents of a document. A
36 device is a callback structure, that gets called for each piece of text, line
37 art, and image on a page. There are several device implementations. The most
38 important one renders the contents to a raster image, and another one gathers
39 all the text into a structure that can be used to select and copy and search
40 the text content on a page.
41
42 ## Document
43
44 The document module handles reading and writing documents in various formats,
45 and ties together all the preceding modules to provide rendering, format
46 conversion, and search functionality for the document types we support.
47
48 ## PDF
49
50 The PDF module provides access to the low level PDF structure, letting you
51 query, modify, and create PDF objects and streams. It allows you to create new
52 documents, modify existing documents, or examine features, extract data, or do
53 almost anything you could want at the PDF object and stream level that we don't
54 provide with the higher level APIs.