+1 (407) 567-0096


We assure you that all support requests are taken seriously and are being evaluated by the same team who developed this product. Feel free to check out our FAQ or contact us by using the below form.

Do you have any Question?

If none of the below commonly asked questions answer your inquiry, please don't hesitate to contact us directly. All questions are answered in less than 24 hours.

Printing FAQ

Where can I see a code sample for usage of the pdfprint?
Code samples with Visual Studio solution file you can find in PdfPrinting.zip located in www.terminalworks.com/pdf-print-net/downloads

There is code of our PdfPrintLibraryTest demo application.
In that code, you can see:
  • How to set all available properties in PdfPrint library (PaperSource, Collate, Copies, Pages, Duplex, Print in Color, Print range, Scale document, Landscape / Portrait, Printer Resolution, Paper Size, Show Printer dialog)
  • How to change default printer in C# and get default values for default printer
  • How to get a list of available printers
  • How to set watermark

  • In our PdfPrintLibraryMultiDocumentPrintTest application you can see how to execute print multiple PDF documents as one single print job.
    Can I use pdfprint in windows service?
    Yes, you can.

    The most important thing to know is that user running windows service where pdfprint is used must have rights to print to selected printer - otherwise it will not work.

    Set up windows service to be run as a user account type:
    User account type - causes the system to prompt for a valid user name and password when the service is installed and runs in the context of an account specified by a single user on the network

    If you want to start windows service as local system account, than system local account must have printer rights.
    NOTE: Following instruction were found at: http://support.microsoft.com/kb/184291
    To set up printers for the SYSTEM account, perform the following:

    This method requires you to modify the registry using the Registry Editor.

    WARNING: Using Registry Editor incorrectly can cause serious, system-wide problems that may require you to reinstall Windows to correct them.
    Microsoft cannot guarantee that any problems resulting from the use of Registry Editor can be solved.
    Use this tool at your own risk.
    Ensure that the user you are currently logged into on the server has the desired printers installed.
    Launch the Registry Editor (Regedit.exe).
    Select the following key:
    HKEY_CURRENT_USER\Software\Microsoft\Windows NT\Current Version\Devices

    From the Registry menu, click Export Registry File.
    In the File Name text box, type c:\Devices.reg.
    Select the following key:
    HKEY_CURRENT_USER\Software\Microsoft\Windows NT\Current Version\PrinterPorts

    From the Registry menu, click Export Registry File.
    In the File Name text box, type c:\PrinterPorts.reg.
    Select the following key:
    HKEY_CURRENT_USER\Software\Microsoft\Windows NT\Current Version\Windows

    From the Registry menu, click Export Registry File.
    In the File Name text box, type c:\Windows.reg.
    From the Start button, select Run. Open Devices.reg in Notepad by typing Notepad Devices.reg in Run dialog box.
    Save the file. Then import it into the registry by double-clicking the file in Windows Explorer.
    Repeat steps done for Devices.reg for PrinterPorts.reg and Windows.reg.
    These steps only work for local printers.

    If you are using PrintWithAdobe method, please also read Can PdfPrint use Adobe for silent printing?
    Can PdfPrint use Adobe for silent printing?
    PrintWithAdobe method uses preinstalled Adobe Reader / Professional for silent printing.
    It works for 32 and 64 bit processes. That method will not works in this cases:
  • in windows service / ASP.net service it will not work if installed version of Adobe Reader is higher than 9.5
  • Adobe Reader / Professional isn't already installed on computer where pdfprint library is used

  • Additional limitations with PrintWithAdobe method:
  • Orientation: auto doesn't work correctly in some cases if PDF document has different size pages. Orientation is determined based on first page which should be printed, so if some of the next pages needs different orientation than the first page to be printed than it will not work correctly for that page.
  • Scale: Fit to margins has same effect as Reduce to margins.
  • Option to enable / disable content centering isn't available. If Scale:None then it isn't centered. It Scale: Fit to margins or Reduce to margins than it is automatically centered.
  • Multiple page ranges to be printed aren't supported. It is supported for example 1-3 but isn't 1-3,4-6 or 1,2,3
  • Printing multiple documents as single printer job aren't supproted
  • It isn't possible to set Watermark on printed PDF document

  • Printing with default pdfprint engine doesn't have above limitations.
    Are paper sources (input trays) and output trays supported?
    PdfPrint library has support for papersources.

    private static PaperSource GetPaperSource(PrinterSettings printerSettings, string paperSourceName)
        foreach (PaperSource paperSource in printerSettings.PaperSources)
            if (paperSource.ToString().Equals(paperSource))
                return paperSource;
        return null; // Paper source not found

    var pdfprint = new PdfPrint("your company name", "your key");
    var printerSettings = new PrinterSettings();
    pdfPrint.PaperSource = GetPaperSource("name of your input tray"); // it is case sensitive

    PdfPrint library doesn't have support for output trays.
    .NET PrinterSettings class has property for setting PaperSource and PaperSource is standard setting.
    Output trays aren't standard printer property - and every printer which supports it handle it differently so it isn't possible to have one general solution which will work for every printer.

    So what to do if you want to print to specific output tray?
    Only option is that you use property SettingDialog to show Printer settings dialog.
    If not set through SettingDialog, printer default output tray will be used.
    Can I include PdfPrintingNet.dll in my setup file? (ClickOnce, MSI, ...)
    PdfPrintingNet.dll is standalone dll library. It is signed with public key.
    It could be included in ClickOnce, MSI and other types of Windows setup file.
    How page scaling in printing works?
    PdfPrint has 3 different scaling options in printing:
    1. Actual Size - it leaves page as it is. If content of the page is larger than printer printable area, than part of the content will be truncated.
    2. Fit to margin - if content of the page is bigger or smaller than the printable area, content will be re-sized so it fits printer printable area.
    3. Shrink to margins - if content of the page is larger than printable area, content will be downsized. If it isn't bigger than printable area, content size will stay the same.

    Different printers has different printable area.

    For PrintWithAdobe() method, due to technical limitations, Fit to margin behaves as Shrink to margins.
    Is PdfPrintingNet.dll signed with public key?
    PdfPrintingNet.dll is signed with public key.
    Can I merge PdfPrint with ilmerge tool?
    No, it won't work.

    executing ilmerge to merge pdfprint dll with another executable will not give you any error, but still it won't work.
    PdfPrint dll is standalone and must stay like that - located in the same folder as the executable which uses pdf print library.
    Can I use PdfPrint library in ASP.NET?
    Silent printing will work if these conditions are satisfied:
    • Selected printer must be "visible" to the IIS application pool user running ASP.NET web-site. That means that it must be possible to print to selected printer from the computer where IIS is running. If you can print from whatever application from IIS server to the desired printer as the user running IIS application pool, then printing should also work from our library. Printing to visitors local printer isn't possible except if that printer is already visible from IIS server.
    • If you are using PrintWithAdobe method instead of default Print method, then installed version of Adobe Reader must be 9.5 or older.

    Converting PDF pages to images will work.
    What is the difference between Viewer, Print and Full license?
    Viewer license allows displaying PDF document in Viewer component without any limitations.
    Also, it allows printing loaded document directly from Viewer component.
    Viewer license doesn't support silent printing.

    Print license allows to print or convert PDF document silently without any limitation.
    If the Viewer component displays the document, it will show demo sign.
    If the Viewer component prints the document, then it will print it without demo sign.

    Full license allows to print, convert and display PDF document without any demo limitation.
    Is supported printing multiple PDF documents as one single printer job?
    From version printing multiple PDF document as one single printer job is available for our standard Print engine.
    PrintWithAdobe(), due to technical reasons, doesn't have that functionality.
    How AutoRotate property works?
    It rotates PDF content according to selected paper orientation.
    If the content of the page has a greater width than height, and paper orientation is Portrait, then it will rotate the content for 270 degrees.
    If the content of the page has a greater height than width, and paper orientation is Portrait, then content will stay the same.
    If the content of the page has a greater height than width, and paper orientation is Landscape, then it will rotate the content for 270 degrees.
    If the content of the page has a greater height than width, and paper orientation is Landscape, then content will stay the same.

    For the default Print method, AutoRotate works per PDF page. If PDF document has more pages with different pages for every one of them will be applied described logic.
    For PrintWithAdobe method orientation is determined based on the content of the first page, which will be printed. That can create a problem if pages with different page sizes are printed. That is one of the know limitations of PrintWithAdobe method.
    Can I set duplex, collate and copies per single document in multi-document print?
    Duplex, copies and collate can't be set per single document in multi-document print.
    This is an internal limitation in the Win32 printing system, and we can't override that.
    This three properties can only be set initially for the print job.
    Other printing properties (paper size, paper source, page orientation...) are page specific, and they can be set.
    How PageAutoSize property works?
    PageAutoSize is a tricky property.
    It attempts to automatically set a printer paper size based on the size of the PDF page.
    Since there are various printers on the market with different capabilities, including the virtual printers, automatic set up of the printer paper size can introduce a few problems.

    The most common problems which can arise are:

    1. The printer doesn't support the paper size set up by the PageAutoSize property
    For example, if you try to print A3 PDF page size to the printer, which only supports the A4 format, that physically cannot work.
    Some printers on the market support custom-defined paper sizes. Still, we can't be sure if the paper size provided by PageAutoSize property will be accepted from the printer or not. We don't have a reliable way to get that information from the printer driver if that custom size will be respected or not.
    Virtual PDF printers (for example - CutePDF Writer) support all different kinds of custom page sizes because they don't have a physical paper size limitations. Also, not all printers on the market have an option to define a custom paper size.
    To avoid settings custom paper size on the printer, which doesn't have such an option, we have added a new property to our library called AllowCustomSize. If that property is true, PageAutoSize will try to set custom paper size if the calculated paper size isn't found. Otherwise, the current printer default paper size will be used. By default, the AllowCustomSize property is false.

    2. The printer supports the required paper size, but automatic tray selection isn't available.
    Some printers have more than one paper source tray. Each tray can be used for a different paper size - for example, Tray 1 is used for A4 while Tray 2 is used for Letter.
    If you try to print A4 PDF page size to A4, but the printer driver isn't able to automatically select a correct paper tray that contains A4 paper - that won't work. However, in most cases, a printer driver will be able to handle such a scenario.
    But, in some rare cases, where that doesn't work, we have added a property PaperSourceTrayInfo, which helps our library to set PrinterTray correctly. That property has to be hard-coded to work properly. Please note, as it's not practical to use PaperSourceTrayInfo property, this is more of a workaround for some specific rare cases.
    How Centered property works?
    The printer has physical printer margins - an area where it can print. So, for some paper size (like A4), if the printer isn't virtual one (like Microsoft PDF Print), the printer will start printing at the left margin, top margin position.

    Printable area = paper size - printer margins.

    Content is centered according to the printable area, so if left and right margin or top and bottom margins aren't the same, the content will not be perfectly centered on the paper, and that is by design.

    Viewer Component FAQ

    How to license PdfViewer object?
    First, you need valid viewer license.
    PdfPrintingNet library has 3 different licensing types: Viewer, Print and Full.
    If your license type is Viewer or Full than you have valid Viewer license and you have received correct license key in email when you purchase PdfPrintingNet library.

    In your source code, you will have something like this:
    var pdfViewer = new PdfViewer();
    pdfViewer.SetLicenseInfo("your company name", "your license key");
    Can I use Viewer component in WPF?
    Yes, it is possible to use it through WindowsFormHost component.
    We recommend that you look at our demo application PdfViewerPDFDemo located in PdfPrinting.zip.

    To license it:
    In PdfViewerWPFDemo project -> MainWindows.xaml.cs, after InitializeComponent(); line, please add this line:
    ((PdfViewer)(windowsHost.Child)).SetLicenseInfo("your company", "your demo key");
    When calling the Print() method on the Viewer component I get the print dialog. Can I silently print a document?
    No, for advanced print settings or silent printing you need to use the Full license of our PDFPrinting.NET library.
    Does Viewer component respects PDF permissions?
    Our library retrieves following permissions from PDF document:
    • Print
    • Modify
    • Comments / Annotations
    • Document Assembly
    • Content Extraction
    • Content Extraction For Accessibility
    • Filling of form fields
    • Full qualify print

    A current version of our library uses only Print / Full quality print and Content Extraction / Content Extraction For Accessibility.
    Other are available only as information.

    In the future version where it will be possible to edit PDF document, other permissions will be respected.
    How to add PdfViewer component on my Windows Form in design time from Visual studio?
    1. In your project reference PdfPrintingNet.dll
    2. Build your project.
    3. In Visual Studio go to Toolbox -> Choose Items -> Browse... -> Select PdfPrintingNet.dll on your disk
    4. That will add PdfViewer in .NET framework components. Check it and press OK.
    Can I remove some of the options on the toolbar of Viewer component?
    Yes, you can hide completely toolbar or you can hide just some of the options of the toolbar.
    For example, you could hide the page selection elements and then only allow your users to view a single page.

    You can change it:
    1. from Visual Studio in design time - in properties window of the toolbar
    2. programmatically from you code
    Why is print button on the Viewer component grayed out?
    This occurs in case the PDF document which you opened has permissions set to disallow printing.
    You can check out the permission of the document by calling the GetPermissions method on the component.
    What are available shortcuts on Viewer component?
    Available Shortcuts in Viewer Component

    CTRL + ASelect all text
    CTRL + SHIFT + ADeselect all text
    CTRL + CCopy selected text or image to clipboard
    SHIFT + RIGHTGo to next page
    CTRL + PPrint
    CTRL + OOpen
    CTRL + FSearch
    CTRL + YZoom to
    CTRL + 0Zoom to fit to page
    CTRL + 1Zoom to actual size
    CTRL + WClose Document
    CTRL + BToggle bookmarks
    CTRL + DShow document info
    CTRL + SHIFT + ADDRotate clockwise
    CTRL + SHIFT + SUBTRACTRotate counter-clockwise
    PAGE UPGo to previous page
    PAGE DOWNGo to next page
    SHIFT + LEFTGo to previous page
    SHIFT + RIGHTGo to next page
    CTRL + SHIFT + NGo to page
    HOMEGo to first page
    ENDGo to last page
    ALT + LEFT Go to previous visited page
    ALT + RIGHTGo to next visited page
    How can I translate PdfViewer?


    • PdfPrintingNet.dll must be version or newer
    • Translation file with translated text
    • In runtime, you call method pdfViewer.TranslateViewer(locationToTranslationFile);

    We suggest that you use translations_en.txt from Samples directory in PdfPrintingNet.zip as a template.
    In translations_en.txt there is a list of all strings used. Translate the part after "=" sign.
    We suggest that you read notes at the bottom of the translations_en.txt.

    Editor Module FAQ

    Where can I see some examples how to use PdfEdit?
    In PdfPrinting.zip (available in downloads page) there are sample applications with its source code.
    There is source code for three sample applications:
    • CreateInvoice - simple example which creates an invoice. A good example to see how to create new PDF document and how to write text with special font and images to it.
    • DocumentMergeSplitExtractRemove - how to extract, remove, split or merge pages from existing PDF document.
    • PDFProtection - how to set PDF encryption and user access permissions.
    Does PdfEdit support AES256 encryption and which encryption to use?
    PDFEdit supports all encryption algorithms defined by official PDF reference manual.

    Supported encryption algorithms are: RC4 40 bit, RC4 custom length key length, RC4 128 bit, AES 128 bit, AES 256 bit - weak type (not recommended!), AES 256 bit - strong type

    AES 256 bit is the most secure encryption, but not all PDF readers aren't yet able to use it. For good security and compatibility, we suggest AES 128 bit.
    Which are user access permissions supported in PDFEdit?
    PDFEdit supports all user access permissions defined by official PDF reference manual.

    Supported user access permissions are: Permit Print, modify document, extract content, annotations, forms fill, accessibility extract content, assemble document, and full quality print.
    You can set user access permissions, but it is up to PDF reader if those permissions will be respected.

    Reference Documentation

    The reference documentation contains all classes, methods, and properties offered through our library. In case you are looking for a tutorial, please download our Quick Start Guide.

    Quick Start Guide

    Quick start guide contains FAQ, examples, and other useful information.

    Ready to get started? Get your PDFPrinting.NET demo now!

    This website uses cookies

    This website uses cookies to improve user experience. By using our website you consent to all cookies in accordance with our Cookie Policy.
    Read more