Announcements
Attention for Customers without Multi-Factor Authentication or Single Sign-On - OTP Verification rolls out April 2025. Read all about it here.
Anonymous
388 Views, 0 Replies

PrintToFile creates invalid pdf using "Adobe PDF" driver

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();
        }
    }
}

  

Tags (1)