Some test text!

platform
search

Convert documents to PDF

Contents

Open a non-PDF file
Convert a non-PDF file
Convert other non-PDF files
Convert HTML to PDF
This tutorial only applies to Xamarin.iOS.
Saving annotations back to non-PDF formats is not supported. You can instead save the annotated PDFDoc to a PDF file.

PDFTron has a powerful conversion system which allows you to convert many file formats to PDF. The PTConvert class handles the conversion process and supports the following file types:

  • Office files: .docx, .pptx, .xlsx, .doc (with the office conversion Add-On module)
  • Images: .bmp, .jpg, .tif, .png, .gif
  • Image collections (zip archives with any type of image listed above)
  • Markdown files: .md

linkOpen a non-PDF file

The simplest way to convert and view any file format that PDFTron supports is to use the PTDocumentViewController (or PTTabbedDocumentViewController) method openDocumentWithURL:. This method supports local files, files opened from remote cloud services and "raw" http URLs.

linkConvert a non-PDF file

Another way is to convert a file with the Convert class's StreamingPDFConversion(String, ConversionOptions) method. The following code shows how to convert a non-PDF file using PDFTron's internal conversion:

var documentConversion = Convert.StreamingPDFConversion("my_file_path", null);
documentConversion.Convert();
var pdfDoc = documentConversion.GetDoc();

The result of the conversion will be contained in the provided PTPDFDoc, which can then be displayed.

linkConvert other non-PDF files

In addition to the file types supported by PDFTron's internal conversion, it is also possible to convert many other file types with an iOS-specific API. The PTConvert class's +convertOfficeToPDF:paperSize:completion: method can convert any file type supported by WKWebView to PDF. Some of the supported file types include:

  • iWork files: .pages, .key, .numbers
  • Binary office files: .doc, .ppt, .xls
  • Rich Text Format files: .rtf

The following code shows how to convert a file with the iOS-specific API:

pdftronprivate.PTConvert.ConvertOfficeToPDF("", CGSize.Empty, (pathToPDF) => { 
    if (pathToPDF == null) {
        // Failed to convert HTML to PDF.
        return;
    }
    var dirs = NSSearchPath.GetDirectories(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomain.User, false);
    var documentDirectory = dirs[0];

    var urlToPdf = new NSUrl(pathToPDF);
    var destinationURL = (new NSUrl(documentDirectory)).Append(urlToPdf.LastPathComponent, false);

    NSError error = null;
    var result = NSFileManager.DefaultManager.Copy(urlToPdf, destinationURL, out error);
    if (!result) {
        // Failed to copy PDF to persistent location.
    }

    // Do something with PDF output.
});

linkConvert HTML to PDF

The platform-specific conversion API also supports HTML to PDF conversion, either with the +convertOfficeToPDF:paperSize:completion: method for .html files or the +convertHTMLStringToPDF:baseURL:paperSize:completion: for raw HTML text.

The following code shows how to convert an HTML string to PDF:

pdftronprivate.PTConvert.ConvertHTMLStringToPDF(htmlString, baseURL, CGSize.Empty, (pathToPDF) => { 
    if (pathToPDF == null) {
        // Failed to convert HTML to PDF.
        return;
    }
    var dirs = NSSearchPath.GetDirectories(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomain.User, false);
    var documentDirectory = dirs[0];

    var urlToPdf = new NSUrl(pathToPDF);
    var destinationURL = (new NSUrl(documentDirectory)).Append(urlToPdf.LastPathComponent, false);

    NSError error = null;
    var result = NSFileManager.DefaultManager.Copy(urlToPdf, destinationURL, out error);
    if (!result) {
        // Failed to copy PDF to persistent location.
    }

    // Do something with PDF output.
});

where baseURL is the URL to use as the page's base URL for resolving relative links in the document.

Get the anwsers you need: Support

Contents

Open a non-PDF file
Convert a non-PDF file
Convert other non-PDF files
Convert HTML to PDF