292 lines
7.3 KiB
TeX
292 lines
7.3 KiB
TeX
|
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
|
||
|
|
||
|
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.enumeratePDFsKey(Int32)
|
||
|
|
||
|
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.enumeratePDFsInfo(Int32)
|
||
|
|
||
|
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.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.
|
||
|
|
||
|
Cpdf.dummych2
|
||
|
|