more
This commit is contained in:
parent
669e39f4a9
commit
acf3737380
|
@ -1,3 +1,5 @@
|
||||||
The splits and pysplits are just copied from the parent directory - remember to update them.
|
The splits and pysplits and dotnetsplits are just copied from the parent
|
||||||
|
directory - remember to update them.
|
||||||
|
|
||||||
When we make command line / C / Python we upload it in subdirectory.
|
When we make command line / C / Python / .NET we upload it in a named
|
||||||
|
subdirectory.
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
Cpdf
|
||||||
|
|
||||||
|
The Coherent PDF Library for .NET
|
||||||
|
|
||||||
|
Cpdf.Pdf
|
||||||
|
|
||||||
|
PDF document. Use the 'using' keyword, or call Dispose to make sure PDFs are
|
||||||
|
deallocated.
|
||||||
|
|
||||||
|
Cpdf.Pdf.Dispose
|
||||||
|
|
||||||
|
Force disposal of the PDF.
|
||||||
|
|
||||||
|
Cpdf.Pdf.Finalize
|
||||||
|
|
||||||
|
Class destructor
|
||||||
|
|
||||||
|
Cpdf.CPDFError
|
||||||
|
|
||||||
|
Any function in this library may raise the CPDFError exception.
|
||||||
|
|
||||||
|
Cpdf.CPDFError.#ctor(String)
|
||||||
|
|
||||||
|
Construct a CPDFError which carries a string.
|
|
@ -0,0 +1,39 @@
|
||||||
|
CHAPTER 0. Preliminaries
|
||||||
|
|
||||||
|
Cpdf.startup
|
||||||
|
|
||||||
|
Initialises the library. Must be called before any other function.
|
||||||
|
|
||||||
|
Cpdf.version
|
||||||
|
|
||||||
|
Returns a string giving the version number of the CPDF library.
|
||||||
|
|
||||||
|
Cpdf.setFast
|
||||||
|
|
||||||
|
Some operations have a fast mode. The default is 'slow' mode, which works even
|
||||||
|
on old-fashioned files. For more details, see section 1.13 of the CPDF manual.
|
||||||
|
This function sets the mode to fast globally.
|
||||||
|
|
||||||
|
Cpdf.setSlow
|
||||||
|
|
||||||
|
Some operations have a fast mode. The default is 'slow' mode, which works even
|
||||||
|
on old-fashioned files. For more details, see section 1.13 of the CPDF manual.
|
||||||
|
This functions sets the mode to slow globally.
|
||||||
|
|
||||||
|
Cpdf.lastError
|
||||||
|
|
||||||
|
Not to be called directly. Errors in .NET cpdf are raised by exceptions.
|
||||||
|
|
||||||
|
Cpdf.lastErrorString
|
||||||
|
|
||||||
|
Not to be called directly. Errors in .NET cpdf are raised by exceptions.
|
||||||
|
|
||||||
|
Cpdf.clearError
|
||||||
|
|
||||||
|
Not to be called directly. Errors in .NET cpdf are raised by exceptions.
|
||||||
|
|
||||||
|
Cpdf.onExit
|
||||||
|
|
||||||
|
A debug function which prints some information about resource usage. This can
|
||||||
|
be used to detect if PDFs or ranges are being deallocated properly. Contrary to
|
||||||
|
its name, it may be run at any time.
|
|
@ -0,0 +1,266 @@
|
||||||
|
CHAPTER 1. Basics
|
||||||
|
|
||||||
|
Cpdf.fromFile(String, String)
|
||||||
|
|
||||||
|
Loads a PDF file from a given file. Supply a user password (possibly blank) in
|
||||||
|
case the file is encrypted. It won't be decrypted, but sometimes the password
|
||||||
|
is needed just to load the file.
|
||||||
|
|
||||||
|
Cpdf.fromFileLazy(String, String)
|
||||||
|
|
||||||
|
Loads a PDF from a file, doing only minimal parsing. The objects will be read
|
||||||
|
and parsed when they are actually needed. Use this when the whole file won't be
|
||||||
|
required. Also supply a user password (possibly blank) in case the file is
|
||||||
|
encrypted. It won't be decrypted, but sometimes the password is needed just to
|
||||||
|
load the file.
|
||||||
|
|
||||||
|
Cpdf.fromMemory(Byte[], String)
|
||||||
|
|
||||||
|
Loads a file from memory given any user password.
|
||||||
|
|
||||||
|
Cpdf.fromMemoryLazy(IntPtr, Int32, String)
|
||||||
|
|
||||||
|
Loads a file from memory, given a pointer and a length, and the user password,
|
||||||
|
but lazily like fromFileLazy. The caller must use AllocHGlobal / Marshal.Copy /
|
||||||
|
FreeHGlobal itself. It must not free the memory until the PDF is also gone.
|
||||||
|
|
||||||
|
Cpdf.startEnumeratePDFs
|
||||||
|
|
||||||
|
Cpdf.enumeratePDFsKey(Int32)
|
||||||
|
|
||||||
|
Cpdf.enumeratePDFsInfo(Int32)
|
||||||
|
|
||||||
|
Cpdf.endEnumeratePDFs
|
||||||
|
|
||||||
|
To enumerate the list of currently allocated PDFs, call startEnumeratePDFs
|
||||||
|
which gives the number, n, of PDFs allocated, then enumeratePDFsInfo and
|
||||||
|
enumeratePDFsKey with index numbers from 0...(n - 1). Call endEnumeratePDFs to
|
||||||
|
clean up.
|
||||||
|
|
||||||
|
Cpdf.ptOfCm(Double)
|
||||||
|
|
||||||
|
Converts a figure in centimetres to points (72 points to 1 inch)
|
||||||
|
|
||||||
|
Cpdf.ptOfMm(Double)
|
||||||
|
|
||||||
|
Converts a figure in millimetres to points (72 points to 1 inch)
|
||||||
|
|
||||||
|
Cpdf.ptOfIn(Double)
|
||||||
|
|
||||||
|
Converts a figure in inches to points (72 points to 1 inch)
|
||||||
|
|
||||||
|
Cpdf.cmOfPt(Double)
|
||||||
|
|
||||||
|
Converts a figure in points to centimetres (72 points to 1 inch)
|
||||||
|
|
||||||
|
Cpdf.mmOfPt(Double)
|
||||||
|
|
||||||
|
Converts a figure in points to millimetres (72 points to 1 inch)
|
||||||
|
|
||||||
|
Cpdf.inOfPt(Double)
|
||||||
|
|
||||||
|
Converts a figure in points to inches (72 points to 1 inch)
|
||||||
|
|
||||||
|
Cpdf.parsePagespec(Cpdf.Pdf, String)
|
||||||
|
|
||||||
|
Parses a page specification with reference to a given PDF (the PDF is supplied
|
||||||
|
so that page ranges which reference pages which do not exist are rejected).
|
||||||
|
|
||||||
|
Cpdf.validatePagespec(String)
|
||||||
|
|
||||||
|
Validates a page specification so far as is possible in the absence of the
|
||||||
|
actual document. Result is true if valid.
|
||||||
|
|
||||||
|
Cpdf.stringOfPagespec(Cpdf.Pdf, List{Int32})
|
||||||
|
|
||||||
|
Builds a page specification from a page range. For example, the range
|
||||||
|
containing 1, 2, 3, 6, 7, 8 in a document of 8 pages might yield "1-3, 6-end"
|
||||||
|
|
||||||
|
Cpdf.blankRange
|
||||||
|
|
||||||
|
Creates a range with no pages in.
|
||||||
|
|
||||||
|
Cpdf.range(Int32, Int32)
|
||||||
|
|
||||||
|
Builds a range from one page to another inclusive. For example, range(3, 7)
|
||||||
|
gives the range 3, 4, 5, 6, 7
|
||||||
|
|
||||||
|
Cpdf.all(Cpdf.Pdf)
|
||||||
|
|
||||||
|
The range containing all the pages in a given document.
|
||||||
|
|
||||||
|
Cpdf.even(List{Int32})
|
||||||
|
|
||||||
|
Makes a range which contains just the even pages of another range.
|
||||||
|
|
||||||
|
Cpdf.odd(List{Int32})
|
||||||
|
|
||||||
|
Makes a range which contains just the odd pages of another range.
|
||||||
|
|
||||||
|
Cpdf.rangeUnion(List{Int32}, List{Int32})
|
||||||
|
|
||||||
|
Makes the union of two ranges giving a range containing the pages in range a
|
||||||
|
and range b.
|
||||||
|
|
||||||
|
Cpdf.difference(List{Int32}, List{Int32})
|
||||||
|
|
||||||
|
Makes the difference of two ranges, giving a range containing all the pages in
|
||||||
|
a except for those which are also in b.
|
||||||
|
|
||||||
|
Cpdf.removeDuplicates(List{Int32})
|
||||||
|
|
||||||
|
Deduplicates a range, making a new one.
|
||||||
|
|
||||||
|
Cpdf.rangeLength(List{Int32})
|
||||||
|
|
||||||
|
Gives the number of pages in a range.
|
||||||
|
|
||||||
|
Cpdf.rangeGet(List{Int32}, Int32)
|
||||||
|
|
||||||
|
Gets the page number at position n in a range,
|
||||||
|
where n runs from 0 to rangeLength - 1.
|
||||||
|
|
||||||
|
Cpdf.rangeAdd(List{Int32}, Int32)
|
||||||
|
|
||||||
|
Adds the page to a range, if it is not already
|
||||||
|
there.
|
||||||
|
|
||||||
|
Cpdf.isInRange(List{Int32}, Int32)
|
||||||
|
|
||||||
|
Returns true if the page is in the range,
|
||||||
|
false otherwise.
|
||||||
|
|
||||||
|
Cpdf.pages(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Returns the number of pages in a PDF.
|
||||||
|
|
||||||
|
Cpdf.pagesFast(String, String)
|
||||||
|
|
||||||
|
Returns the number of pages in a given PDF, with given user password. It tries
|
||||||
|
to do this as fast as possible, without loading the whole file.
|
||||||
|
|
||||||
|
Cpdf.toFile(Cpdf.Pdf, String, Boolean, Boolean)
|
||||||
|
|
||||||
|
Writes the file to a given filename. If linearize is true, it will be
|
||||||
|
linearized if a linearizer is available. If make_id is true, it will be given a
|
||||||
|
new ID.
|
||||||
|
|
||||||
|
Cpdf.toFileExt(Cpdf.Pdf, String, Boolean, Boolean, Boolean, Boolean, Boolean)
|
||||||
|
|
||||||
|
Writes the file to a given filename. If make_id is true, it will be given a new
|
||||||
|
ID. If preserve_objstm is true, existing object streams will be preserved. If
|
||||||
|
generate_objstm is true, object streams will be generated even if not
|
||||||
|
originally present. If compress_objstm is true, object streams will be
|
||||||
|
compressed (what we usually want). WARNING: the pdf argument will be invalid
|
||||||
|
after this call, and should be not be used again.
|
||||||
|
|
||||||
|
Cpdf.toMemory(Cpdf.Pdf, Boolean, Boolean)
|
||||||
|
|
||||||
|
Writes a PDF file and returns as an array of bytes.
|
||||||
|
|
||||||
|
Cpdf.isEncrypted(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Returns true if a documented is encrypted, false otherwise.
|
||||||
|
|
||||||
|
Cpdf.decryptPdf(Cpdf.Pdf, String)
|
||||||
|
|
||||||
|
Attempts to decrypt a PDF using the given user password. An exception is raised
|
||||||
|
if the decryption fails.
|
||||||
|
|
||||||
|
Cpdf.decryptPdfOwner(Cpdf.Pdf, String)
|
||||||
|
|
||||||
|
Attempts to decrypt a PDF using the given owner password. Raises an exception
|
||||||
|
if the decryption fails.
|
||||||
|
|
||||||
|
Cpdf.Permission
|
||||||
|
|
||||||
|
Permissions
|
||||||
|
|
||||||
|
Cpdf.Permission.NoEdit
|
||||||
|
|
||||||
|
Cannot edit the document
|
||||||
|
|
||||||
|
Cpdf.Permission.NoPrint
|
||||||
|
|
||||||
|
Cannot print the document
|
||||||
|
|
||||||
|
Cpdf.Permission.NoCopy
|
||||||
|
|
||||||
|
Cannot copy the document
|
||||||
|
|
||||||
|
Cpdf.Permission.NoAnnot
|
||||||
|
|
||||||
|
Cannot annotate the document
|
||||||
|
|
||||||
|
Cpdf.Permission.NoForms
|
||||||
|
|
||||||
|
Cannot edit forms in the document
|
||||||
|
|
||||||
|
Cpdf.Permission.NoExtract
|
||||||
|
|
||||||
|
Cannot extract information
|
||||||
|
|
||||||
|
Cpdf.Permission.NoAssemble
|
||||||
|
|
||||||
|
Cannot assemble into a bigger document
|
||||||
|
|
||||||
|
Cpdf.Permission.NoHqPrint
|
||||||
|
|
||||||
|
Cannot print high quality
|
||||||
|
|
||||||
|
Cpdf.EncryptionMethod
|
||||||
|
|
||||||
|
Encryption methods
|
||||||
|
|
||||||
|
Cpdf.EncryptionMethod.Pdf40bit
|
||||||
|
|
||||||
|
40 bit RC4 encryption
|
||||||
|
|
||||||
|
Cpdf.EncryptionMethod.Pdf128bit
|
||||||
|
|
||||||
|
128 bit RC4 encryption
|
||||||
|
|
||||||
|
Cpdf.EncryptionMethod.Aes128bitfalse
|
||||||
|
|
||||||
|
128 bit AES encryption, do not encrypt metadata
|
||||||
|
|
||||||
|
Cpdf.EncryptionMethod.Aes128bittrue
|
||||||
|
|
||||||
|
128 bit AES encryption, encrypt metadata
|
||||||
|
|
||||||
|
Cpdf.EncryptionMethod.Aes256bitfalse
|
||||||
|
|
||||||
|
Deprecated. Do not use for new files
|
||||||
|
|
||||||
|
Cpdf.EncryptionMethod.Aes256bittrue
|
||||||
|
|
||||||
|
Deprecated. Do not use for new files
|
||||||
|
|
||||||
|
Cpdf.EncryptionMethod.Aes256bitisofalse
|
||||||
|
|
||||||
|
256 bit AES encryption, do not encrypt metadata
|
||||||
|
|
||||||
|
Cpdf.EncryptionMethod.Aes256bitiosotrue
|
||||||
|
|
||||||
|
256 bit AES encryption, encrypt metadata
|
||||||
|
|
||||||
|
Cpdf.toFileEncrypted(Cpdf.Pdf, Cpdf.EncryptionMethod, List{Cpdf.Permission},
|
||||||
|
String, String, Boolean, Boolean, String)
|
||||||
|
|
||||||
|
Writes a file as encrypted.
|
||||||
|
|
||||||
|
Cpdf.toFileEncryptedExt(Cpdf.Pdf, Cpdf.EncryptionMethod, List{Cpdf.Permission},
|
||||||
|
String, String, Boolean, Boolean, Boolean, Boolean, Boolean, String)
|
||||||
|
|
||||||
|
Writes a file as encrypted with extra parameters. WARNING: the pdf argument
|
||||||
|
will be invalid after this call, and should not be used again.
|
||||||
|
|
||||||
|
Cpdf.hasPermission(Cpdf.Pdf, Cpdf.Permission)
|
||||||
|
|
||||||
|
Returns true if the given permission
|
||||||
|
(restriction) is present.
|
||||||
|
|
||||||
|
Cpdf.encryptionKind(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Returns the encryption method currently in use on
|
||||||
|
a document.
|
|
@ -0,0 +1,22 @@
|
||||||
|
CHAPTER 2. Merging and Splitting
|
||||||
|
|
||||||
|
Cpdf.mergeSimple(List{Cpdf.Pdf})
|
||||||
|
|
||||||
|
Given a list of PDFs, merges the files into a new one, which is returned.
|
||||||
|
|
||||||
|
Cpdf.merge(List{Cpdf.Pdf}, Boolean, Boolean)
|
||||||
|
|
||||||
|
Merges the PDFs. If retain_numbering is true page labels are not rewritten. If
|
||||||
|
remove_duplicate_fonts is true, duplicate fonts are merged. This is useful when
|
||||||
|
the source documents for merging originate from the same source.
|
||||||
|
|
||||||
|
Cpdf.mergeSame(List{Cpdf.Pdf}, Boolean, Boolean, List{List{Int32}})
|
||||||
|
|
||||||
|
The same as merge, except that it has an additional argument - a list of page
|
||||||
|
ranges. This is used to select the pages to pick from each PDF. This avoids
|
||||||
|
duplication of information when multiple discrete parts of a source PDF are
|
||||||
|
included.
|
||||||
|
|
||||||
|
Cpdf.selectPages(Cpdf.Pdf, List{Int32})
|
||||||
|
|
||||||
|
Returns a new document which just those pages in the page range.
|
|
@ -0,0 +1,235 @@
|
||||||
|
CHAPTER 3. Pages
|
||||||
|
|
||||||
|
Cpdf.scalePages(Cpdf.Pdf, List{Int32}, Double, Double)
|
||||||
|
|
||||||
|
Scales the page dimensions and content by the given scale, about (0, 0). Other
|
||||||
|
boxes (crop etc. are altered as appropriate)
|
||||||
|
|
||||||
|
Cpdf.scaleToFit(Cpdf.Pdf, List{Int32}, Double, Double, Double)
|
||||||
|
|
||||||
|
Scales the content to fit new page dimensions (width x height) multiplied by
|
||||||
|
scale (typically 1.0). Other boxes (crop etc. are altered as appropriate)
|
||||||
|
|
||||||
|
Cpdf.Papersize
|
||||||
|
|
||||||
|
Built-in paper sizes
|
||||||
|
|
||||||
|
Cpdf.Papersize.A0portrait
|
||||||
|
|
||||||
|
A0 Portrait paper
|
||||||
|
|
||||||
|
Cpdf.Papersize.A1portrait
|
||||||
|
|
||||||
|
A1 Portrait paper
|
||||||
|
|
||||||
|
Cpdf.Papersize.A2portrait
|
||||||
|
|
||||||
|
A2 Portrait paper
|
||||||
|
|
||||||
|
Cpdf.Papersize.A3portrait
|
||||||
|
|
||||||
|
A3 Portrait paper
|
||||||
|
|
||||||
|
Cpdf.Papersize.A4portrait
|
||||||
|
|
||||||
|
A4 Portrait paper
|
||||||
|
|
||||||
|
Cpdf.Papersize.A5portrait
|
||||||
|
|
||||||
|
A5 Portrait paper
|
||||||
|
|
||||||
|
Cpdf.Papersize.A0landscape
|
||||||
|
|
||||||
|
A0 Landscape paper
|
||||||
|
|
||||||
|
Cpdf.Papersize.A1landscape
|
||||||
|
|
||||||
|
A1 Landscape paper
|
||||||
|
|
||||||
|
Cpdf.Papersize.A2landscape
|
||||||
|
|
||||||
|
A2 Landscape paper
|
||||||
|
|
||||||
|
Cpdf.Papersize.A3landscape
|
||||||
|
|
||||||
|
A3 Landscape paper
|
||||||
|
|
||||||
|
Cpdf.Papersize.A4landscape
|
||||||
|
|
||||||
|
A4 Landscape paper
|
||||||
|
|
||||||
|
Cpdf.Papersize.A5landscape
|
||||||
|
|
||||||
|
A5 Landscape paper
|
||||||
|
|
||||||
|
Cpdf.Papersize.Usletterportrait
|
||||||
|
|
||||||
|
US Letter Portrait paper
|
||||||
|
|
||||||
|
Cpdf.Papersize.Usletterlandscape
|
||||||
|
|
||||||
|
US Letter Landscape paper
|
||||||
|
|
||||||
|
Cpdf.Papersize.Uslegalportrait
|
||||||
|
|
||||||
|
US Legal Portrait paper
|
||||||
|
|
||||||
|
Cpdf.Papersize.Uslegallandscape
|
||||||
|
|
||||||
|
US Legal Landscape paper
|
||||||
|
|
||||||
|
Cpdf.scaleToFitPaper(Cpdf.Pdf, List{Int32}, Cpdf.Papersize, Double)
|
||||||
|
|
||||||
|
Scales the page content to fit the given page size, possibly multiplied by
|
||||||
|
scale (typically 1.0)
|
||||||
|
|
||||||
|
Cpdf.Anchor
|
||||||
|
|
||||||
|
Position anchors
|
||||||
|
|
||||||
|
Cpdf.Anchor.PosCentre
|
||||||
|
|
||||||
|
Absolute centre
|
||||||
|
|
||||||
|
Cpdf.Anchor.PosLeft
|
||||||
|
|
||||||
|
Absolute left
|
||||||
|
|
||||||
|
Cpdf.Anchor.PosRight
|
||||||
|
|
||||||
|
Absolute right
|
||||||
|
|
||||||
|
Cpdf.Anchor.Top
|
||||||
|
|
||||||
|
The top centre of the page
|
||||||
|
|
||||||
|
Cpdf.Anchor.TopLeft
|
||||||
|
|
||||||
|
The top left of the page
|
||||||
|
|
||||||
|
Cpdf.Anchor.TopRight
|
||||||
|
|
||||||
|
The top right of the page
|
||||||
|
|
||||||
|
Cpdf.Anchor.Left
|
||||||
|
|
||||||
|
The left hand side of the page, halfway down
|
||||||
|
|
||||||
|
Cpdf.Anchor.BottomLeft
|
||||||
|
|
||||||
|
The bottom left of the page
|
||||||
|
|
||||||
|
Cpdf.Anchor.Bottom
|
||||||
|
|
||||||
|
The bottom middle of the page
|
||||||
|
|
||||||
|
Cpdf.Anchor.BottomRight
|
||||||
|
|
||||||
|
The bottom right of the page
|
||||||
|
|
||||||
|
Cpdf.Anchor.Right
|
||||||
|
|
||||||
|
The right hand side of the page, halfway down
|
||||||
|
|
||||||
|
Cpdf.Anchor.Diagonal
|
||||||
|
|
||||||
|
Diagonal, bottom left to top right
|
||||||
|
|
||||||
|
Cpdf.Anchor.ReverseDiagonal
|
||||||
|
|
||||||
|
Diagonal, top left to bottom right
|
||||||
|
|
||||||
|
Cpdf.Position
|
||||||
|
|
||||||
|
Cpdf.Position.anchor
|
||||||
|
|
||||||
|
Position anchor
|
||||||
|
|
||||||
|
Cpdf.Position.coord1
|
||||||
|
|
||||||
|
Parameter one
|
||||||
|
|
||||||
|
Cpdf.Position.coord2
|
||||||
|
|
||||||
|
Parameter two
|
||||||
|
|
||||||
|
Cpdf.Position.#ctor(Cpdf.Anchor)
|
||||||
|
|
||||||
|
Build a position with zero parameters
|
||||||
|
|
||||||
|
Cpdf.Position.#ctor(Cpdf.Anchor, Double)
|
||||||
|
|
||||||
|
Build a position with one parameter
|
||||||
|
|
||||||
|
Cpdf.Position.#ctor(Cpdf.Anchor, Double, Double)
|
||||||
|
|
||||||
|
Build a position with two parameters
|
||||||
|
|
||||||
|
Cpdf.scaleContents(Cpdf.Pdf, List{Int32}, Cpdf.Position, Double)
|
||||||
|
|
||||||
|
Scales the contents of the pages in the range about the point given by the
|
||||||
|
position, by the scale given.
|
||||||
|
|
||||||
|
Cpdf.shiftContents(Cpdf.Pdf, List{Int32}, Double, Double)
|
||||||
|
|
||||||
|
Shifts the content of the pages in the range.
|
||||||
|
|
||||||
|
Cpdf.rotate(Cpdf.Pdf, List{Int32}, Int32)
|
||||||
|
|
||||||
|
Changes the viewing rotation to an absolute value. Appropriate rotations are 0,
|
||||||
|
90, 180, 270.
|
||||||
|
|
||||||
|
Cpdf.rotateBy(Cpdf.Pdf, List{Int32}, Int32)
|
||||||
|
|
||||||
|
Rotates the content about the centre of the page by the given number of
|
||||||
|
degrees, in a clockwise direction.
|
||||||
|
|
||||||
|
Cpdf.rotateContents(Cpdf.Pdf, List{Int32}, Double)
|
||||||
|
|
||||||
|
Rotates the content about the centre of the page by the given number of
|
||||||
|
degrees, in a clockwise direction.
|
||||||
|
|
||||||
|
Cpdf.upright(Cpdf.Pdf, List{Int32})
|
||||||
|
|
||||||
|
Changes the viewing rotation of the pages in the range, counter-rotating the
|
||||||
|
dimensions and content such that there is no visual change.
|
||||||
|
|
||||||
|
Cpdf.hFlip(Cpdf.Pdf, List{Int32})
|
||||||
|
|
||||||
|
Flips horizontally the pages in the range.
|
||||||
|
|
||||||
|
Cpdf.vFlip(Cpdf.Pdf, List{Int32})
|
||||||
|
|
||||||
|
Flips vertically the pages in the range.
|
||||||
|
|
||||||
|
Cpdf.crop(Cpdf.Pdf, List{Int32}, Double, Double, Double, Double)
|
||||||
|
|
||||||
|
Crops a page, replacing any existing crop box. The dimensions are in points.
|
||||||
|
|
||||||
|
Cpdf.removeCrop(Cpdf.Pdf, List{Int32})
|
||||||
|
|
||||||
|
Removes any crop box from pages in the range.
|
||||||
|
|
||||||
|
Cpdf.removeTrim(Cpdf.Pdf, List{Int32})
|
||||||
|
|
||||||
|
Removes any trim box from pages in the range.
|
||||||
|
|
||||||
|
Cpdf.removeArt(Cpdf.Pdf, List{Int32})
|
||||||
|
|
||||||
|
Removes any art box from pages in the range.
|
||||||
|
|
||||||
|
Cpdf.removeBleed(Cpdf.Pdf, List{Int32})
|
||||||
|
|
||||||
|
Removes any bleed box from pages in the range.
|
||||||
|
|
||||||
|
Cpdf.trimMarks(Cpdf.Pdf, List{Int32})
|
||||||
|
|
||||||
|
Adds trim marks to the given pages, if the trimbox exists.
|
||||||
|
|
||||||
|
Cpdf.showBoxes(Cpdf.Pdf, List{Int32})
|
||||||
|
|
||||||
|
Shows the boxes on the given pages, for debug.
|
||||||
|
|
||||||
|
Cpdf.hardBox(Cpdf.Pdf, List{Int32}, String)
|
||||||
|
|
||||||
|
Makes a given box a 'hard box' i.e clips it explicitly.
|
|
@ -0,0 +1,3 @@
|
||||||
|
CHAPTER 4. Encryption
|
||||||
|
|
||||||
|
Encryption covered in Chapter 1.
|
|
@ -0,0 +1,14 @@
|
||||||
|
CHAPTER 5. Compression
|
||||||
|
|
||||||
|
Cpdf.compress(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Compresses any uncompressed streams in the given PDF using the Flate algorithm.
|
||||||
|
|
||||||
|
Cpdf.decompress(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Decompresses any streams in the given PDF, so long as the compression method is
|
||||||
|
supported.
|
||||||
|
|
||||||
|
Cpdf.squeezeInMemory(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Squeezes a pdf in memory.
|
|
@ -0,0 +1,68 @@
|
||||||
|
CHAPTER 6. Bookmarks
|
||||||
|
|
||||||
|
Cpdf.startGetBookmarkInfo(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Starts the bookmark retrieval process for a given PDF.
|
||||||
|
|
||||||
|
Cpdf.numberBookmarks
|
||||||
|
|
||||||
|
Gets the number of bookmarks for the PDF given to startGetBookmarkInfo.
|
||||||
|
|
||||||
|
Cpdf.getBookmarkLevel(Int32)
|
||||||
|
|
||||||
|
Gets the bookmark level for the given bookmark (0...(n - 1)).
|
||||||
|
|
||||||
|
Cpdf.getBookmarkPage(Cpdf.Pdf, Int32)
|
||||||
|
|
||||||
|
Gets the bookmark target page for the given PDF (which must be the same as the
|
||||||
|
PDF passed to startSetBookmarkInfo) and bookmark (0...(n - 1)).
|
||||||
|
|
||||||
|
Cpdf.getBookmarkText(Int32)
|
||||||
|
|
||||||
|
Returns the text of bookmark (0...(n - 1)).
|
||||||
|
|
||||||
|
Cpdf.getBookmarkOpenStatus(Int32)
|
||||||
|
|
||||||
|
True if the bookmark is open.
|
||||||
|
|
||||||
|
Cpdf.endGetBookmarkInfo
|
||||||
|
|
||||||
|
Ends the bookmark retrieval process, cleaning up.
|
||||||
|
|
||||||
|
Cpdf.startSetBookmarkInfo(Int32)
|
||||||
|
|
||||||
|
Starts the bookmark setting process for n bookmarks.
|
||||||
|
|
||||||
|
Cpdf.setBookmarkLevel(Int32, Int32)
|
||||||
|
|
||||||
|
Set bookmark level for the given bookmark (0...(n - 1)).
|
||||||
|
|
||||||
|
Cpdf.setBookmarkPage(Cpdf.Pdf, Int32, Int32)
|
||||||
|
|
||||||
|
Sets the bookmark target page for the given PDF (which must be the same as the
|
||||||
|
PDF to be passed to endSetBookmarkInfo) and bookmark (0...(n - 1)).
|
||||||
|
|
||||||
|
Cpdf.setBookmarkOpenStatus(Int32, Boolean)
|
||||||
|
|
||||||
|
Sets the open status of bookmark (0...(n - 1)).
|
||||||
|
|
||||||
|
Cpdf.setBookmarkText(Int32, String)
|
||||||
|
|
||||||
|
Sets the text of bookmark (0...(n - 1)).
|
||||||
|
|
||||||
|
Cpdf.endSetBookmarkInfo(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Ends the bookmark setting process, writing the bookmarks to the given PDF.
|
||||||
|
|
||||||
|
Cpdf.getBookmarksJSON(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Returns the bookmark data in JSON format.
|
||||||
|
|
||||||
|
Cpdf.setBookmarksJSON(Cpdf.Pdf, Byte[])
|
||||||
|
|
||||||
|
Sets the bookmarks from JSON bookmark data.
|
||||||
|
|
||||||
|
Cpdf.tableOfContents(Cpdf.Pdf, Cpdf.Font, Double, String, Boolean)
|
||||||
|
|
||||||
|
Typesets a table of contents from existing bookmarks and prepends it to the
|
||||||
|
document. If bookmark is set, the table of contents gets its own bookmark.
|
|
@ -0,0 +1,3 @@
|
||||||
|
CHAPTER 7. Presentations
|
||||||
|
|
||||||
|
Not included in the library version of cpdf.
|
|
@ -0,0 +1,123 @@
|
||||||
|
CHAPTER 8. Logos, Watermarks and Stamps
|
||||||
|
|
||||||
|
Cpdf.stampOn(Cpdf.Pdf, Cpdf.Pdf, List{Int32})
|
||||||
|
|
||||||
|
Stamps stamp_pdf on top of all the pages in the document which are in the
|
||||||
|
range. The stamp is placed with its origin at the origin of the target
|
||||||
|
document.
|
||||||
|
|
||||||
|
Cpdf.stampUnder(Cpdf.Pdf, Cpdf.Pdf, List{Int32})
|
||||||
|
|
||||||
|
Stamps stamp_pdf under all the pages in the document which are in the range.
|
||||||
|
The stamp is placed with its origin at the origin of the target document.
|
||||||
|
|
||||||
|
Cpdf.stampExtended(Cpdf.Pdf, Cpdf.Pdf, List{Int32}, Boolean, Boolean,
|
||||||
|
Cpdf.Position, Boolean)
|
||||||
|
|
||||||
|
A stamping function with extra features. - isover true, pdf goes over pdf2,
|
||||||
|
isover false, pdf goes under pdf2 - scale_stamp_to_fit scales the stamp to fit
|
||||||
|
the page - pos gives the position to put the stamp - relative_to_cropbox: if
|
||||||
|
true, pos is relative to cropbox not mediabox.
|
||||||
|
|
||||||
|
Cpdf.combinePages(Cpdf.Pdf, Cpdf.Pdf)
|
||||||
|
|
||||||
|
Combines the PDFs page-by-page, putting each page of 'over' over each page of
|
||||||
|
'under'.
|
||||||
|
|
||||||
|
Cpdf.Font
|
||||||
|
|
||||||
|
Standard fonts
|
||||||
|
|
||||||
|
Cpdf.Font.TimesRoman
|
||||||
|
|
||||||
|
Times Roman
|
||||||
|
|
||||||
|
Cpdf.Font.TimesBold
|
||||||
|
|
||||||
|
Times Bold
|
||||||
|
|
||||||
|
Cpdf.Font.TimesItalic
|
||||||
|
|
||||||
|
Times Italic
|
||||||
|
|
||||||
|
Cpdf.Font.TimesBoldItalic
|
||||||
|
|
||||||
|
Times Bold Italic
|
||||||
|
|
||||||
|
Cpdf.Font.Helvetica
|
||||||
|
|
||||||
|
Helvetica
|
||||||
|
|
||||||
|
Cpdf.Font.HelveticaBold
|
||||||
|
|
||||||
|
Helvetica Bold
|
||||||
|
|
||||||
|
Cpdf.Font.HelveticaOblique
|
||||||
|
|
||||||
|
Helvetica Oblique
|
||||||
|
|
||||||
|
Cpdf.Font.HelveticaBoldOblique
|
||||||
|
|
||||||
|
Helvetica Bold Oblique
|
||||||
|
|
||||||
|
Cpdf.Font.Courier
|
||||||
|
|
||||||
|
Courier
|
||||||
|
|
||||||
|
Cpdf.Font.CourierBold
|
||||||
|
|
||||||
|
Courier Bold
|
||||||
|
|
||||||
|
Cpdf.Font.CourierOblique
|
||||||
|
|
||||||
|
Courier Oblique
|
||||||
|
|
||||||
|
Cpdf.Font.CourierBoldOblique
|
||||||
|
|
||||||
|
Courier Bold Oblique
|
||||||
|
|
||||||
|
Cpdf.Justification
|
||||||
|
|
||||||
|
Justifications
|
||||||
|
|
||||||
|
Cpdf.Justification.LeftJustify
|
||||||
|
|
||||||
|
Left justify
|
||||||
|
|
||||||
|
Cpdf.Justification.CentreJustify
|
||||||
|
|
||||||
|
Centre justify
|
||||||
|
|
||||||
|
Cpdf.Justification.RightJustify
|
||||||
|
|
||||||
|
Right justify
|
||||||
|
|
||||||
|
Cpdf.addText(Boolean, Cpdf.Pdf, List{Int32}, String, Cpdf.Position, Double,
|
||||||
|
Int32, Cpdf.Font, Double, Double, Double, Double, Boolean, Boolean, Boolean,
|
||||||
|
Double, Cpdf.Justification, Boolean, Boolean, String, Double, Boolean)
|
||||||
|
|
||||||
|
Adds text to the pages in the given range.
|
||||||
|
|
||||||
|
Cpdf.addTextSimple(Cpdf.Pdf, List{Int32}, String, Cpdf.Position, Cpdf.Font,
|
||||||
|
Double)
|
||||||
|
|
||||||
|
Adds text with most parameters default.
|
||||||
|
|
||||||
|
Cpdf.removeText(Cpdf.Pdf, List{Int32})
|
||||||
|
|
||||||
|
Removes any text added by cpdf from the given pages.
|
||||||
|
|
||||||
|
Cpdf.textWidth(Cpdf.Font, String)
|
||||||
|
|
||||||
|
Returns the width of a given string in the given font in thousandths of a
|
||||||
|
point.
|
||||||
|
|
||||||
|
Cpdf.addContent(String, Boolean, Cpdf.Pdf, List{Int32})
|
||||||
|
|
||||||
|
Adds page content before (if true) or after (if false) the existing content to
|
||||||
|
pages in the given range in the given PDF.
|
||||||
|
|
||||||
|
Cpdf.stampAsXObject(Cpdf.Pdf, List{Int32}, Cpdf.Pdf)
|
||||||
|
|
||||||
|
Stamps stamp_pdf onto the pages in the given range in pdf as a shared Form
|
||||||
|
XObject. The name of the newly-created XObject is returned.
|
|
@ -0,0 +1,40 @@
|
||||||
|
CHAPTER 9. Multipage facilities
|
||||||
|
|
||||||
|
Cpdf.impose(Cpdf.Pdf, Double, Double, Boolean, Boolean, Boolean, Boolean,
|
||||||
|
Boolean, Double, Double, Double)
|
||||||
|
|
||||||
|
Imposes a PDF. There are two modes: imposing x * y, or imposing to fit a page
|
||||||
|
of size x * y. This is controlled by fit. Columns imposes by columns rather
|
||||||
|
than rows. rtl is right-to-left, btt bottom-to-top. Center is unused for now.
|
||||||
|
Margin is the margin around the output, spacing the spacing between imposed
|
||||||
|
inputs.
|
||||||
|
|
||||||
|
Cpdf.twoUp(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Imposes a document two up. twoUpStack does so by doubling the page size, to fit
|
||||||
|
two pages on one.
|
||||||
|
|
||||||
|
Cpdf.twoUpStack(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Impose a document two up. twoUpStack does so by doubling the page size, to fit
|
||||||
|
two pages on one.
|
||||||
|
|
||||||
|
Cpdf.padBefore(Cpdf.Pdf, List{Int32})
|
||||||
|
|
||||||
|
Adds a blank page before each page in the given range.
|
||||||
|
|
||||||
|
Cpdf.padAfter(Cpdf.Pdf, List{Int32})
|
||||||
|
|
||||||
|
Adds a blank page after each page in the given range.
|
||||||
|
|
||||||
|
Cpdf.padEvery(Cpdf.Pdf, Int32)
|
||||||
|
|
||||||
|
Adds a blank page after every n pages.
|
||||||
|
|
||||||
|
Cpdf.padMultiple(Cpdf.Pdf, Int32)
|
||||||
|
|
||||||
|
Adds pages at the end to pad the file to a multiple of n pages in length.
|
||||||
|
|
||||||
|
Cpdf.padMultipleBefore(Cpdf.Pdf, Int32)
|
||||||
|
|
||||||
|
Adds pages at the beginning to pad the file to a multiple of n pages in length.
|
|
@ -0,0 +1,5 @@
|
||||||
|
CHAPTER 10. Annotations
|
||||||
|
|
||||||
|
Cpdf.annotationsJSON(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Returns the annotations from a PDF in JSON format
|
|
@ -0,0 +1,368 @@
|
||||||
|
CHAPTER 11. Document Information and Metadata
|
||||||
|
|
||||||
|
Cpdf.isLinearized(String)
|
||||||
|
|
||||||
|
Finds out if a document is linearized as quickly as possible without loading
|
||||||
|
it.
|
||||||
|
|
||||||
|
Cpdf.getVersion(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Returns the minor version number of a document.
|
||||||
|
|
||||||
|
Cpdf.getMajorVersion(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Returns the minor version number of a document.
|
||||||
|
|
||||||
|
Cpdf.getTitle(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Returns the title of a document.
|
||||||
|
|
||||||
|
Cpdf.getAuthor(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Returns the author of a document.
|
||||||
|
|
||||||
|
Cpdf.getSubject(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Returns the subject of a document.
|
||||||
|
|
||||||
|
Cpdf.getKeywords(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Returns the keywords of a document.
|
||||||
|
|
||||||
|
Cpdf.getCreator(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Returns the creator of a document.
|
||||||
|
|
||||||
|
Cpdf.getProducer(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Returns the producer of a document.
|
||||||
|
|
||||||
|
Cpdf.getCreationDate(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Returns the creation date of a document.
|
||||||
|
|
||||||
|
Cpdf.getModificationDate(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Returns the modification date of a document.
|
||||||
|
|
||||||
|
Cpdf.getTitleXMP(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Returns the XMP title of a document.
|
||||||
|
|
||||||
|
Cpdf.getAuthorXMP(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Returns the XMP author of a document.
|
||||||
|
|
||||||
|
Cpdf.getSubjectXMP(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Returns the XMP subject of a document.
|
||||||
|
|
||||||
|
Cpdf.getKeywordsXMP(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Returns the XMP keywords of a document.
|
||||||
|
|
||||||
|
Cpdf.getCreatorXMP(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Returns the XMP creator of a document.
|
||||||
|
|
||||||
|
Cpdf.getProducerXMP(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Returns the XMP producer of a document.
|
||||||
|
|
||||||
|
Cpdf.getCreationDateXMP(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Returns the XMP creation date of a document.
|
||||||
|
|
||||||
|
Cpdf.getModificationDateXMP(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Returns the XMP modification date of a document.
|
||||||
|
|
||||||
|
Cpdf.setTitle(Cpdf.Pdf, String)
|
||||||
|
|
||||||
|
Sets the title of a document.
|
||||||
|
|
||||||
|
Cpdf.setAuthor(Cpdf.Pdf, String)
|
||||||
|
|
||||||
|
Sets the author of a document.
|
||||||
|
|
||||||
|
Cpdf.setSubject(Cpdf.Pdf, String)
|
||||||
|
|
||||||
|
Sets the subject of a document.
|
||||||
|
|
||||||
|
Cpdf.setKeywords(Cpdf.Pdf, String)
|
||||||
|
|
||||||
|
Sets the keywords of a document.
|
||||||
|
|
||||||
|
Cpdf.setCreator(Cpdf.Pdf, String)
|
||||||
|
|
||||||
|
Sets the creator of a document.
|
||||||
|
|
||||||
|
Cpdf.setProducer(Cpdf.Pdf, String)
|
||||||
|
|
||||||
|
Sets the producer of a document.
|
||||||
|
|
||||||
|
Cpdf.setCreationDate(Cpdf.Pdf, String)
|
||||||
|
|
||||||
|
Sets the creation date of a document.
|
||||||
|
|
||||||
|
Cpdf.setModificationDate(Cpdf.Pdf, String)
|
||||||
|
|
||||||
|
Sets the modification date of a document.
|
||||||
|
|
||||||
|
Cpdf.setTitleXMP(Cpdf.Pdf, String)
|
||||||
|
|
||||||
|
Sets the XMP title of a document.
|
||||||
|
|
||||||
|
Cpdf.setAuthorXMP(Cpdf.Pdf, String)
|
||||||
|
|
||||||
|
Sets the XMP author of a document.
|
||||||
|
|
||||||
|
Cpdf.setSubjectXMP(Cpdf.Pdf, String)
|
||||||
|
|
||||||
|
Sets the XMP subject of a document.
|
||||||
|
|
||||||
|
Cpdf.setKeywordsXMP(Cpdf.Pdf, String)
|
||||||
|
|
||||||
|
Sets the XMP keywords of a document.
|
||||||
|
|
||||||
|
Cpdf.setCreatorXMP(Cpdf.Pdf, String)
|
||||||
|
|
||||||
|
Sets the XMP creator of a document.
|
||||||
|
|
||||||
|
Cpdf.setProducerXMP(Cpdf.Pdf, String)
|
||||||
|
|
||||||
|
Sets the XMP producer of a document.
|
||||||
|
|
||||||
|
Cpdf.setCreationDateXMP(Cpdf.Pdf, String)
|
||||||
|
|
||||||
|
Sets the XMP creation date of a document.
|
||||||
|
|
||||||
|
Cpdf.setModificationDateXMP(Cpdf.Pdf, String)
|
||||||
|
|
||||||
|
Sets the XMP modification date of a document.
|
||||||
|
|
||||||
|
Cpdf.getDateComponents(String, Int32@, Int32@, Int32@, Int32@, Int32@, Int32@,
|
||||||
|
Int32@, Int32@)
|
||||||
|
|
||||||
|
Returns the components from a PDF date string.
|
||||||
|
|
||||||
|
Cpdf.dateStringOfComponents(Int32, Int32, Int32, Int32, Int32, Int32, Int32,
|
||||||
|
Int32)
|
||||||
|
|
||||||
|
Builds a PDF date string from individual components.
|
||||||
|
|
||||||
|
Cpdf.getPageRotation(Cpdf.Pdf, Int32)
|
||||||
|
|
||||||
|
Gets the viewing rotation for a given page.
|
||||||
|
|
||||||
|
Cpdf.hasBox(Cpdf.Pdf, Int32, String)
|
||||||
|
|
||||||
|
Returns true, if that page has the given box. E.g "/CropBox".
|
||||||
|
|
||||||
|
Cpdf.getMediaBox(Cpdf.Pdf, Int32, Double@, Double@, Double@, Double@)
|
||||||
|
|
||||||
|
Cpdf.getCropBox(Cpdf.Pdf, Int32, Double@, Double@, Double@, Double@)
|
||||||
|
|
||||||
|
Cpdf.getTrimBox(Cpdf.Pdf, Int32, Double@, Double@, Double@, Double@)
|
||||||
|
|
||||||
|
Cpdf.getArtBox(Cpdf.Pdf, Int32, Double@, Double@, Double@, Double@)
|
||||||
|
|
||||||
|
Cpdf.getBleedBox(Cpdf.Pdf, Int32, Double@, Double@, Double@, Double@)
|
||||||
|
|
||||||
|
These functions get a box given the document, page number, min x, max x,
|
||||||
|
min y, max y in points. Only succeeds if such a box exists, as checked by
|
||||||
|
hasBox.
|
||||||
|
|
||||||
|
Cpdf.setMediabox(Cpdf.Pdf, List{Int32}, Double, Double, Double, Double)
|
||||||
|
|
||||||
|
Cpdf.setCropBox(Cpdf.Pdf, List{Int32}, Double, Double, Double, Double)
|
||||||
|
|
||||||
|
Cpdf.setTrimBox(Cpdf.Pdf, List{Int32}, Double, Double, Double, Double)
|
||||||
|
|
||||||
|
Cpdf.setArtBox(Cpdf.Pdf, List{Int32}, Double, Double, Double, Double)
|
||||||
|
|
||||||
|
Cpdf.setBleedBox(Cpdf.Pdf, List{Int32}, Double, Double, Double, Double)
|
||||||
|
|
||||||
|
These functions set a box given the document, page range, min x, max x,
|
||||||
|
min y, max y in points.
|
||||||
|
|
||||||
|
Cpdf.markTrapped(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Marks a document as trapped.
|
||||||
|
|
||||||
|
Cpdf.markUntrapped(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Marks a document as untrapped.
|
||||||
|
|
||||||
|
Cpdf.markTrappedXMP(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Marks a document as trapped in XMP metadata.
|
||||||
|
|
||||||
|
Cpdf.markUntrappedXMP(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Marks a document as untrapped in XMP metadata.
|
||||||
|
|
||||||
|
Cpdf.Layout
|
||||||
|
|
||||||
|
Layouts
|
||||||
|
|
||||||
|
Cpdf.Layout.SinglePage
|
||||||
|
|
||||||
|
Single page
|
||||||
|
|
||||||
|
Cpdf.Layout.OneColumn
|
||||||
|
|
||||||
|
One column
|
||||||
|
|
||||||
|
Cpdf.Layout.TwoColumnLeft
|
||||||
|
|
||||||
|
Two column left
|
||||||
|
|
||||||
|
Cpdf.Layout.TwoColumnRight
|
||||||
|
|
||||||
|
Two column right
|
||||||
|
|
||||||
|
Cpdf.Layout.TwoPageLeft
|
||||||
|
|
||||||
|
Two page left
|
||||||
|
|
||||||
|
Cpdf.Layout.TwoPageRight
|
||||||
|
|
||||||
|
Two page right
|
||||||
|
|
||||||
|
Cpdf.setPageLayout(Cpdf.Pdf, Cpdf.Layout)
|
||||||
|
|
||||||
|
Sets the page layout for a document.
|
||||||
|
|
||||||
|
Cpdf.PageMode
|
||||||
|
|
||||||
|
Page modes
|
||||||
|
|
||||||
|
Cpdf.PageMode.UseNone
|
||||||
|
|
||||||
|
Use none
|
||||||
|
|
||||||
|
Cpdf.PageMode.UseOutlines
|
||||||
|
|
||||||
|
Use outlines
|
||||||
|
|
||||||
|
Cpdf.PageMode.UseThumbs
|
||||||
|
|
||||||
|
Use thumbs
|
||||||
|
|
||||||
|
Cpdf.PageMode.UseOC
|
||||||
|
|
||||||
|
Use OC
|
||||||
|
|
||||||
|
Cpdf.PageMode.UseAttachments
|
||||||
|
|
||||||
|
Use attachments
|
||||||
|
|
||||||
|
Cpdf.setPageMode(Cpdf.Pdf, Cpdf.PageMode)
|
||||||
|
|
||||||
|
Sets the page mode for a document.
|
||||||
|
|
||||||
|
Cpdf.hideToolbar(Cpdf.Pdf, Boolean)
|
||||||
|
|
||||||
|
Sets the hide toolbar flag.
|
||||||
|
|
||||||
|
Cpdf.hideMenubar(Cpdf.Pdf, Boolean)
|
||||||
|
|
||||||
|
Sets the hide menubar flag.
|
||||||
|
|
||||||
|
Cpdf.hideWindowUi(Cpdf.Pdf, Boolean)
|
||||||
|
|
||||||
|
Sets the hide window UI flag.
|
||||||
|
|
||||||
|
Cpdf.fitWindow(Cpdf.Pdf, Boolean)
|
||||||
|
|
||||||
|
Sets the fit window flag.
|
||||||
|
|
||||||
|
Cpdf.centerWindow(Cpdf.Pdf, Boolean)
|
||||||
|
|
||||||
|
Sets the center window flag.
|
||||||
|
|
||||||
|
Cpdf.displayDocTitle(Cpdf.Pdf, Boolean)
|
||||||
|
|
||||||
|
Sets the display doc title flag.
|
||||||
|
|
||||||
|
Cpdf.openAtPage(Cpdf.Pdf, Boolean, Int32)
|
||||||
|
|
||||||
|
Sets the PDF to open, possibly with zoom-to-fit, at the given page number.
|
||||||
|
|
||||||
|
Cpdf.setMetadataFromFile(Cpdf.Pdf, String)
|
||||||
|
|
||||||
|
Sets the XMP metadata of a document, given a file name.
|
||||||
|
|
||||||
|
Cpdf.setMetadataFromByteArray(Cpdf.Pdf, Byte[])
|
||||||
|
|
||||||
|
Sets the XMP metadata from an array of bytes.
|
||||||
|
|
||||||
|
Cpdf.removeMetadata(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Removes the XMP metadata from a document.
|
||||||
|
|
||||||
|
Cpdf.getMetadata(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Returns the XMP metadata from a document.
|
||||||
|
|
||||||
|
Cpdf.createMetadata(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Builds fresh metadata as best it can from
|
||||||
|
existing metadata in the document.
|
||||||
|
|
||||||
|
Cpdf.setMetadataDate(Cpdf.Pdf, String)
|
||||||
|
|
||||||
|
Sets the metadata date for a PDF. The date is given in PDF date format -- cpdf
|
||||||
|
will convert it to XMP format. The date 'now' means now.
|
||||||
|
|
||||||
|
Cpdf.PageLabelStyle
|
||||||
|
|
||||||
|
Page label styles
|
||||||
|
|
||||||
|
Cpdf.PageLabelStyle.DecimalArabic
|
||||||
|
|
||||||
|
1, 2, 3...
|
||||||
|
|
||||||
|
Cpdf.PageLabelStyle.UppercaseRoman
|
||||||
|
|
||||||
|
I, II, III...
|
||||||
|
|
||||||
|
Cpdf.PageLabelStyle.LowercaseRoman
|
||||||
|
|
||||||
|
i, ii, iii...
|
||||||
|
|
||||||
|
Cpdf.PageLabelStyle.UppercaseLetters
|
||||||
|
|
||||||
|
A, B, C...
|
||||||
|
|
||||||
|
Cpdf.PageLabelStyle.LowercaseLetters
|
||||||
|
|
||||||
|
a, b, c...
|
||||||
|
|
||||||
|
Cpdf.addPageLabels(Cpdf.Pdf, Cpdf.PageLabelStyle, String, Int32, List{Int32},
|
||||||
|
Boolean)
|
||||||
|
|
||||||
|
Adds page labels. The prefix is prefix text for each label. The range is the
|
||||||
|
page range the labels apply to. Offset can be used to shift the numbering up or
|
||||||
|
down.
|
||||||
|
|
||||||
|
Cpdf.removePageLabels(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Removes the page labels from the document.
|
||||||
|
|
||||||
|
Cpdf.getPageLabelStringForPage(Cpdf.Pdf, Int32)
|
||||||
|
|
||||||
|
Calculates the full label string for a given page, and returns it.
|
||||||
|
|
||||||
|
Cpdf.startGetPageLabels(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Cpdf.getPageLabelStyle(Int32)
|
||||||
|
|
||||||
|
Cpdf.getPageLabelPrefix(Int32)
|
||||||
|
|
||||||
|
Cpdf.getPageLabelOffset(Int32)
|
||||||
|
|
||||||
|
Cpdf.getPageLabelRange(Int32)
|
||||||
|
|
||||||
|
Cpdf.endGetPageLabels
|
|
@ -0,0 +1,47 @@
|
||||||
|
CHAPTER 12. File Attachments
|
||||||
|
|
||||||
|
Cpdf.attachFile(String, Cpdf.Pdf)
|
||||||
|
|
||||||
|
Attaches a file to the pdf. It is attached at document level.
|
||||||
|
|
||||||
|
Cpdf.attachFileToPage(String, Cpdf.Pdf, Int32)
|
||||||
|
|
||||||
|
Attaches a file, given its file name, pdf, and the page number to which it
|
||||||
|
should be attached.
|
||||||
|
|
||||||
|
Cpdf.attachFileFromMemory(Byte[], String, Cpdf.Pdf)
|
||||||
|
|
||||||
|
Attaches data from memory, just like attachFile.
|
||||||
|
|
||||||
|
Cpdf.attachFileToPageFromMemory(Byte[], String, Cpdf.Pdf, Int32)
|
||||||
|
|
||||||
|
Attaches to a page from memory, just like attachFileToPage.
|
||||||
|
|
||||||
|
Cpdf.removeAttachedFiles(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Removes all page- and document-level attachments from a document.
|
||||||
|
|
||||||
|
Cpdf.startGetAttachments(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Cpdf.numberGetAttachments
|
||||||
|
|
||||||
|
Lists information about attachments. Call startGetAttachments(pdf) first, then
|
||||||
|
numberGetAttachments to find out how many there are. Then getAttachmentName
|
||||||
|
etc. to return each one 0...(n - 1). Finally, call endGetAttachments to clean
|
||||||
|
up.
|
||||||
|
|
||||||
|
Cpdf.getAttachmentName(Int32)
|
||||||
|
|
||||||
|
Gets the name of an attachment.
|
||||||
|
|
||||||
|
Cpdf.getAttachmentPage(Int32)
|
||||||
|
|
||||||
|
Gets the page number. 0 = document level.
|
||||||
|
|
||||||
|
Cpdf.getAttachmentData(Int32)
|
||||||
|
|
||||||
|
Gets the attachment data itself.
|
||||||
|
|
||||||
|
Cpdf.endGetAttachments
|
||||||
|
|
||||||
|
Cleans up after getting attachments.
|
|
@ -0,0 +1,25 @@
|
||||||
|
CHAPTER 13. Images.
|
||||||
|
|
||||||
|
Cpdf.startGetImageResolution(Cpdf.Pdf, Double)
|
||||||
|
|
||||||
|
Cpdf.getImageResolutionPageNumber(Int32)
|
||||||
|
|
||||||
|
Cpdf.getImageResolutionImageName(Int32)
|
||||||
|
|
||||||
|
Cpdf.getImageResolutionXPixels(Int32)
|
||||||
|
|
||||||
|
Cpdf.getImageResolutionYPixels(Int32)
|
||||||
|
|
||||||
|
Cpdf.getImageResolutionXRes(Int32)
|
||||||
|
|
||||||
|
Cpdf.getImageResolutionYRes(Int32)
|
||||||
|
|
||||||
|
Cpdf.endGetImageResolution
|
||||||
|
|
||||||
|
Gets image data, including resolution at all points of use. Call
|
||||||
|
startGetImageResolution(pdf, min_required_resolution) will begin the
|
||||||
|
process of obtaining data on all image uses below min_required_resolution,
|
||||||
|
returning the total number. So, to return all image uses, specify a very
|
||||||
|
high min_required_resolution. Then, call the other functions giving a
|
||||||
|
serial number 0..n - 1, to retrieve the data. Finally, call
|
||||||
|
endGetImageResolution to clean up.
|
|
@ -0,0 +1,30 @@
|
||||||
|
CHAPTER 14. Fonts.
|
||||||
|
|
||||||
|
Cpdf.startGetFontInfo(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Cpdf.numberFonts
|
||||||
|
|
||||||
|
Cpdf.getFontPage(Int32)
|
||||||
|
|
||||||
|
Cpdf.getFontName(Int32)
|
||||||
|
|
||||||
|
Cpdf.getFontType(Int32)
|
||||||
|
|
||||||
|
Cpdf.getFontEncoding(Int32)
|
||||||
|
|
||||||
|
Cpdf.endGetFontInfo
|
||||||
|
|
||||||
|
Retrieves font information. First, call startGetFontInfo(pdf). Now call
|
||||||
|
numberFonts to return the number of fonts. For each font, call one or more of
|
||||||
|
getFontPage, getFontName, getFontType, and getFontEncoding giving a serial
|
||||||
|
number 0..n - 1 to return information. Finally, call endGetFontInfo to clean
|
||||||
|
up.
|
||||||
|
|
||||||
|
Cpdf.removeFonts(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Removes all font data from a file.
|
||||||
|
|
||||||
|
Cpdf.copyFont(Cpdf.Pdf, Cpdf.Pdf, List{Int32}, Int32, String)
|
||||||
|
|
||||||
|
Copies the given font from the given page in the 'from' PDF to every page in
|
||||||
|
the 'to' PDF. The new font is stored under its font name.
|
|
@ -0,0 +1,19 @@
|
||||||
|
CHAPTER 15. PDF and JSON
|
||||||
|
|
||||||
|
Cpdf.outputJSON(String, Boolean, Boolean, Boolean, Cpdf.Pdf)
|
||||||
|
|
||||||
|
Outputs a PDF in JSON format to the given filename. If parse_content is true,
|
||||||
|
page content is parsed. If no_stream_data is true, all stream data is
|
||||||
|
suppressed entirely.
|
||||||
|
|
||||||
|
Cpdf.outputJSONMemory(Cpdf.Pdf, Boolean, Boolean, Boolean)
|
||||||
|
|
||||||
|
Like outputJSON, but it writes to a byte array in memory.
|
||||||
|
|
||||||
|
Cpdf.fromJSON(String)
|
||||||
|
|
||||||
|
Loads a PDF from a JSON file given its filename.
|
||||||
|
|
||||||
|
Cpdf.fromJSONMemory(Byte[])
|
||||||
|
|
||||||
|
Loads a PDF from a JSON file in memory
|
|
@ -0,0 +1,28 @@
|
||||||
|
CHAPTER 16. Optional Content Groups
|
||||||
|
|
||||||
|
Cpdf.startGetOCGList(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Begins retrieving optional content group names. The serial number 0..n - 1 is
|
||||||
|
returned.
|
||||||
|
|
||||||
|
Cpdf.OCGListEntry(Int32)
|
||||||
|
|
||||||
|
Retrieves an OCG name, given its serial number 0..n - 1.
|
||||||
|
|
||||||
|
Cpdf.endGetOCGList
|
||||||
|
|
||||||
|
Ends retrieval of optional content group names.
|
||||||
|
|
||||||
|
Cpdf.OCGRename(Cpdf.Pdf, String, String)
|
||||||
|
|
||||||
|
Renames an optional content group.
|
||||||
|
|
||||||
|
Cpdf.OCGOrderAll(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Ensures that every optional content group appears in the OCG order list.
|
||||||
|
|
||||||
|
Cpdf.OCGCoalesce(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Coalesces optional content groups. For example, if we merge or stamp two files
|
||||||
|
both with an OCG called "Layer 1", we will have two different optional content
|
||||||
|
groups. This function will merge the two into a single optional content group.
|
|
@ -0,0 +1,20 @@
|
||||||
|
CHAPTER 17. Creating New PDFs
|
||||||
|
|
||||||
|
Cpdf.blankDocument(Double, Double, Int32)
|
||||||
|
|
||||||
|
Creates a blank document with pages of the given width (in points), height (in
|
||||||
|
points), and number of pages.
|
||||||
|
|
||||||
|
Cpdf.blankDocumentPaper(Cpdf.Papersize, Int32)
|
||||||
|
|
||||||
|
Makes a blank document given a page size and number of pages.
|
||||||
|
|
||||||
|
Cpdf.textToPDF(Double, Double, Cpdf.Font, Double, String)
|
||||||
|
|
||||||
|
Typesets a UTF8 text file ragged right on a page of size w * h in points in the
|
||||||
|
given font and font size.
|
||||||
|
|
||||||
|
Cpdf.textToPDFPaper(Cpdf.Papersize, Cpdf.Font, Double, String)
|
||||||
|
|
||||||
|
Typesets a UTF8 text file ragged right on a page of the given size in the given
|
||||||
|
font and font size.
|
|
@ -0,0 +1,70 @@
|
||||||
|
CHAPTER 18. Miscellaneous
|
||||||
|
|
||||||
|
Cpdf.draft(Cpdf.Pdf, List{Int32}, Boolean)
|
||||||
|
|
||||||
|
Removes images on the given pages, replacing them with crossed boxes if 'boxes'
|
||||||
|
is true.
|
||||||
|
|
||||||
|
Cpdf.removeAllText(Cpdf.Pdf, List{Int32})
|
||||||
|
|
||||||
|
Removes all text from the given pages in a given document.
|
||||||
|
|
||||||
|
Cpdf.blackText(Cpdf.Pdf, List{Int32})
|
||||||
|
|
||||||
|
Blackens all text on the given pages.
|
||||||
|
|
||||||
|
Cpdf.blackLines(Cpdf.Pdf, List{Int32})
|
||||||
|
|
||||||
|
Blackens all lines on the given pages.
|
||||||
|
|
||||||
|
Cpdf.blackFills(Cpdf.Pdf, List{Int32})
|
||||||
|
|
||||||
|
Blackens all fills on the given pages.
|
||||||
|
|
||||||
|
Cpdf.thinLines(Cpdf.Pdf, List{Int32}, Double)
|
||||||
|
|
||||||
|
Thickens every line less than min_thickness to min_thickness. Thickness given
|
||||||
|
in points.
|
||||||
|
|
||||||
|
Cpdf.copyId(Cpdf.Pdf, Cpdf.Pdf)
|
||||||
|
|
||||||
|
Copies the /ID from one document to another.
|
||||||
|
|
||||||
|
Cpdf.removeId(Cpdf.Pdf)
|
||||||
|
|
||||||
|
Removes a document's /ID.
|
||||||
|
|
||||||
|
Cpdf.setVersion(Cpdf.Pdf, Int32)
|
||||||
|
|
||||||
|
Sets the minor version number of a document.
|
||||||
|
|
||||||
|
Cpdf.setFullVersion(Cpdf.Pdf, Int32, Int32)
|
||||||
|
|
||||||
|
Sets the full version number of a document.
|
||||||
|
|
||||||
|
Cpdf.removeDictEntry(Cpdf.Pdf, String)
|
||||||
|
|
||||||
|
Removes any dictionary entry with the given key anywhere in the document.
|
||||||
|
|
||||||
|
Cpdf.removeDictEntrySearch(Cpdf.Pdf, String, String)
|
||||||
|
|
||||||
|
Removes any dictionary entry with the given key whose value matches the given
|
||||||
|
search term.
|
||||||
|
|
||||||
|
Cpdf.replaceDictEntry(Cpdf.Pdf, String, String)
|
||||||
|
|
||||||
|
Replaces the value associated with the given key.
|
||||||
|
|
||||||
|
Cpdf.replaceDictEntrySearch(Cpdf.Pdf, String, String, String)
|
||||||
|
|
||||||
|
Replaces the value associated with the given key if the existing value matches
|
||||||
|
the search term.
|
||||||
|
|
||||||
|
Cpdf.removeClipping(Cpdf.Pdf, List{Int32})
|
||||||
|
|
||||||
|
Removes all clipping from pages in the given range.
|
||||||
|
|
||||||
|
Cpdf.getDictEntries(Cpdf.Pdf, String)
|
||||||
|
|
||||||
|
Returns a JSON array containing any and all values associated with the given
|
||||||
|
key, and fills in its length.
|
|
@ -0,0 +1,28 @@
|
||||||
|
CPDF .NET Library
|
||||||
|
=================
|
||||||
|
|
||||||
|
Before using the library, you must make sure your project or build environment
|
||||||
|
has access to the cpdf DLL, which is not part of the .NET assembly. You can add
|
||||||
|
it to a Visual Studio project as a file, set to copy-to-output-folder. Or, you
|
||||||
|
can install it in a standard location. The DLL must be named as follows, for
|
||||||
|
.NET to be able to find it:
|
||||||
|
|
||||||
|
Windows: cpdf.dll
|
||||||
|
MacOS: libcpdf.dylib
|
||||||
|
Linux: libcpdf.so
|
||||||
|
|
||||||
|
The following documentation is automatically extracted from the XML comments
|
||||||
|
present in the assembly. You can use Intellisense to view them within Visual
|
||||||
|
Studio - the documentation here is for completeness.
|
||||||
|
|
||||||
|
A 'range' is a list of integers specifying page numbers.
|
||||||
|
|
||||||
|
Text arguments and results are in UTF8. Data is of type bytes[].
|
||||||
|
|
||||||
|
Any function may raise the exception CPDFError, carrying a string describing
|
||||||
|
the error.
|
||||||
|
|
||||||
|
There is no automatic garbage collection of PDFs. Use the Using keyword and/or
|
||||||
|
the Dispose method on objects of type Cpdf.Pdf to explicitly deallocate PDFs.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue