Message 1 of 1
PrintToFile creates invalid pdf using "Adobe PDF" driver

Not applicable
02-20-2017
09:01 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
The following code works fine for "Microsoft Print to PDF" driver, but doesn't work for "Adobe PDF" driver. The "Adobe PDF" driver creates pdf documents, but they can't be opened.
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Inventor; using System.IO; namespace ConsoleApp1 { public class Program { public static void Main(string[] args) { var inputDrawing = args[0]; var outputDir = args[1]; var inventorAppType = Type.GetTypeFromProgID("Inventor.Application"); var inventor = (Application)System.Activator.CreateInstance(inventorAppType); if (inventor == null) { throw new ArgumentNullException(nameof(inventor)); } var drawingDocument = (DrawingDocument)inventor.Documents.Open(inputDrawing); if (!Directory.Exists(outputDir)) { Directory.CreateDirectory(outputDir); } for (var i = 1; i<= drawingDocument.Sheets.Count; i++) { var sheet = drawingDocument.Sheets[i]; var printManager = (DrawingPrintManager)drawingDocument.PrintManager; printManager.PaperSize = PaperSizeEnum.kPaperSizeA3; printManager.ScaleMode = PrintScaleModeEnum.kPrintBestFitScale; printManager.Orientation = PrintOrientationEnum.kLandscapeOrientation; printManager.Printer = "Adobe PDF"; //printManager.Printer = "Microsoft Print to PDF"; printManager.PrintRange = PrintRangeEnum.kPrintSheetRange; printManager.SetSheetRange(i, i); var outputFilename = $"{System.IO.Path.GetFileNameWithoutExtension(inputDrawing)}_{i}.pdf"; var outputPath = System.IO.Path.Combine(outputDir, outputFilename); printManager.PrintToFile(outputPath); } drawingDocument.Close(true); inventor.Quit(); } } }