diff --git a/html_manual/README.txt b/html_manual/README.txt index 2c24f7b..7fab7eb 100644 --- a/html_manual/README.txt +++ b/html_manual/README.txt @@ -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. diff --git a/html_manual/dotnetsplits/c00.tex b/html_manual/dotnetsplits/c00.tex new file mode 100644 index 0000000..c3d5c8f --- /dev/null +++ b/html_manual/dotnetsplits/c00.tex @@ -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. diff --git a/html_manual/dotnetsplits/c01.tex b/html_manual/dotnetsplits/c01.tex new file mode 100644 index 0000000..be10f5a --- /dev/null +++ b/html_manual/dotnetsplits/c01.tex @@ -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. diff --git a/html_manual/dotnetsplits/c02.tex b/html_manual/dotnetsplits/c02.tex new file mode 100644 index 0000000..05b0224 --- /dev/null +++ b/html_manual/dotnetsplits/c02.tex @@ -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. diff --git a/html_manual/dotnetsplits/c03.tex b/html_manual/dotnetsplits/c03.tex new file mode 100644 index 0000000..b730467 --- /dev/null +++ b/html_manual/dotnetsplits/c03.tex @@ -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. diff --git a/html_manual/dotnetsplits/c04.tex b/html_manual/dotnetsplits/c04.tex new file mode 100644 index 0000000..765c883 --- /dev/null +++ b/html_manual/dotnetsplits/c04.tex @@ -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. diff --git a/html_manual/dotnetsplits/c05.tex b/html_manual/dotnetsplits/c05.tex new file mode 100644 index 0000000..72fb05e --- /dev/null +++ b/html_manual/dotnetsplits/c05.tex @@ -0,0 +1,3 @@ +CHAPTER 4. Encryption + +Encryption covered in Chapter 1. diff --git a/html_manual/dotnetsplits/c06.tex b/html_manual/dotnetsplits/c06.tex new file mode 100644 index 0000000..27d0a0f --- /dev/null +++ b/html_manual/dotnetsplits/c06.tex @@ -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. diff --git a/html_manual/dotnetsplits/c07.tex b/html_manual/dotnetsplits/c07.tex new file mode 100644 index 0000000..d3549f6 --- /dev/null +++ b/html_manual/dotnetsplits/c07.tex @@ -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. diff --git a/html_manual/dotnetsplits/c08.tex b/html_manual/dotnetsplits/c08.tex new file mode 100644 index 0000000..9b5c52e --- /dev/null +++ b/html_manual/dotnetsplits/c08.tex @@ -0,0 +1,3 @@ +CHAPTER 7. Presentations + +Not included in the library version of cpdf. diff --git a/html_manual/dotnetsplits/c09.tex b/html_manual/dotnetsplits/c09.tex new file mode 100644 index 0000000..d1c6dbe --- /dev/null +++ b/html_manual/dotnetsplits/c09.tex @@ -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. diff --git a/html_manual/dotnetsplits/c10.tex b/html_manual/dotnetsplits/c10.tex new file mode 100644 index 0000000..99b601a --- /dev/null +++ b/html_manual/dotnetsplits/c10.tex @@ -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. diff --git a/html_manual/dotnetsplits/c11.tex b/html_manual/dotnetsplits/c11.tex new file mode 100644 index 0000000..bf10106 --- /dev/null +++ b/html_manual/dotnetsplits/c11.tex @@ -0,0 +1,5 @@ +CHAPTER 10. Annotations + +Cpdf.annotationsJSON(Cpdf.Pdf) + +Returns the annotations from a PDF in JSON format diff --git a/html_manual/dotnetsplits/c12.tex b/html_manual/dotnetsplits/c12.tex new file mode 100644 index 0000000..be343b1 --- /dev/null +++ b/html_manual/dotnetsplits/c12.tex @@ -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 diff --git a/html_manual/dotnetsplits/c13.tex b/html_manual/dotnetsplits/c13.tex new file mode 100644 index 0000000..487cd7a --- /dev/null +++ b/html_manual/dotnetsplits/c13.tex @@ -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. diff --git a/html_manual/dotnetsplits/c14.tex b/html_manual/dotnetsplits/c14.tex new file mode 100644 index 0000000..f81eb99 --- /dev/null +++ b/html_manual/dotnetsplits/c14.tex @@ -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. diff --git a/html_manual/dotnetsplits/c15.tex b/html_manual/dotnetsplits/c15.tex new file mode 100644 index 0000000..66073b8 --- /dev/null +++ b/html_manual/dotnetsplits/c15.tex @@ -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. diff --git a/html_manual/dotnetsplits/c16.tex b/html_manual/dotnetsplits/c16.tex new file mode 100644 index 0000000..7129ff2 --- /dev/null +++ b/html_manual/dotnetsplits/c16.tex @@ -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 diff --git a/html_manual/dotnetsplits/c17.tex b/html_manual/dotnetsplits/c17.tex new file mode 100644 index 0000000..9e5be3c --- /dev/null +++ b/html_manual/dotnetsplits/c17.tex @@ -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. diff --git a/html_manual/dotnetsplits/c18.tex b/html_manual/dotnetsplits/c18.tex new file mode 100644 index 0000000..043b0ec --- /dev/null +++ b/html_manual/dotnetsplits/c18.tex @@ -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. diff --git a/html_manual/dotnetsplits/c19.tex b/html_manual/dotnetsplits/c19.tex new file mode 100644 index 0000000..a7d58f9 --- /dev/null +++ b/html_manual/dotnetsplits/c19.tex @@ -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. diff --git a/html_manual/dotnetsplits/cm1.tex b/html_manual/dotnetsplits/cm1.tex new file mode 100644 index 0000000..805adc2 --- /dev/null +++ b/html_manual/dotnetsplits/cm1.tex @@ -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. + +