PrintToFile creates invalid pdf using "Adobe PDF" driver

PrintToFile creates invalid pdf using "Adobe PDF" driver

Anonymous
Not applicable
409 Views
0 Replies
Message 1 of 1

PrintToFile creates invalid pdf using "Adobe PDF" driver

Anonymous
Not applicable

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

  

0 Likes
410 Views
0 Replies
Replies (0)