ProPrintServer - Drawing Plot & PDF Conversion

ProPrintServer is a VB.NET Windows application that monitors file-based print queues and converts engineering drawings (SolidWorks, HPGL) to printed output or PDF. It replaces the older VB6 PSPrintServer and PTIPDFConvert applications.


Overview

MetricValue
SourceC:\git\PSI.All\ProPrintServer
FrameworkVB.NET / .NET Framework 4.6.1 / WinForms
SolidWorksSW2025 SP3 Interop
Queue PathS:\UnixShare\PrintQue\Requests\
ConfigS:\UnixShare\PrintQue\support\PrintersNew.txt
Poll Interval15 seconds per queue, cycles through all queues

How to Request a Plot

Step 1: Create a Request File

Drop a text file into the appropriate queue folder under S:\UnixShare\PrintQue\Requests\.

For Physical Printer Output

Folder: S:\UnixShare\PrintQue\Requests\{PRINTER}\ (e.g., PT002, PT034)

Filename: PLOT.{date}.{time}.{username}.{count}

File format:

{Owner}                        Line 0:  Username/initials
{DrawingCount}                 Line 0a: Number of drawings (integer)
{Size}                         Line 1:  Paper size: "a" (8.5x11) or "b" (11x17)
{PropNote}                     Line 2:  Proprietary note: PBS, GE1, GE2, SOL, NONE
{ZoomPlot}                     Line 3:  Zoom plot: true/false
{UserFileArea}                 Line 4:  User file area: true/false
{StandardElements}             Line 5:  Standard elements: true/false
{HeaderFile}                   Line 6:  Header file: true/false
{HeaderFileName}               Line 6a: Header path (only if Line 6 = true)
{Trailer}                      Line 7:  Trailer: true/false
{Notes}                        Line 8:  Notes: true/false
{NoteText}                     Line 8a: Note text (only if Line 8 = true)
{DrawingNumber}                Line 9+: Part numbers (one per line, repeating)

Lines with letters (3a, 6a, 8a) are only present when their parent line is true. Lines 8a and 9 alternate if notes are enabled.

Example (simple single drawing, no header/notes):

AMD
1
b
PBS
false
false
true
false
false
359920

For PDF Conversion (Service Manuals)

Folder: S:\UnixShare\PrintQue\Requests\PDF\

Filename: {ProjectNumber}.txt

The PDF queue reads a drawing list from O:\WPPlot\{ProjectNumber} (generated by UniData). Each line must start with a 6-digit numeric part number.

Output location: K:\Project\{ProjectNo}\man\pdfman\pdfdocs\{ProjectNo}md.pdf

For DWG Export (SolidWorks to AutoCAD)

Folder: S:\UnixShare\PrintQue\Requests\DWG\

Filename: {username}.{date}.{time}.{initials}

File contains a list of part numbers (one per line). Converts .slddrw from X:\MasterDwgs\ to .dwg output at U:\{Owner}\dwg\.

For Parasolid Export

Folder: S:\UnixShare\PrintQue\Requests\Parasolid\

Same format as DWG. Converts .sldprt/.sldasm from X:\MasterFiles\ to .x_t at X:\Parasolid\.


Step 2: Wait for Processing

ProPrintServer cycles through all queues every 15 seconds. When it finds a request file:

  1. Parses the request file
  2. Processes each drawing
  3. Deletes the request file on success (moves to Failed\ subfolder on error)

Job Types

Job TypeQueueSource FilesOutputTools
Drawing PrintPT002, PT034, etc..slddrw or .hpgPhysical printer via \\fs2\{printer}SolidWorks API, ViewCompanion
Work Order PacketPT002 (with header matching [A-Z]#####).slddrw or .hpgMerged PDF at K:\WorkOrders\{WO}.pdfSolidWorks + Adobe PDF + Distiller + Acrobat
Service Manual PDFPDF.slddrw or .hpgK:\Project\{proj}\man\pdfman\pdfdocs\SolidWorks + Adobe PDF + Distiller
DWG ExportDWG.slddrwU:\{owner}\dwg\{part}.dwgSolidWorks SaveAs
Parasolid ExportParasolid.sldprt / .sldasmX:\Parasolid\{part}.x_tSolidWorks SaveAs

Conversion Pipeline

SolidWorks Drawings to PDF

X:\MasterDwgs\{part}.slddrw
  -> SolidWorks API PrintOut4() to "Adobe PDF" printer
  -> PostScript file at C:\tmp\ps\{part}.ps
  -> Combined via runfilex.ps template (adds bookmarks)
  -> Adobe Distiller (acrodist.exe) with Standard11x17 job option
  -> Final PDF

HPGL (CimCAD) Drawings to PDF

X:\CimCAD\HPGL\{part}.hpg
  -> Copy to C:\tmp\hpgl\
  -> ConvertHPGLtoHPGL2 (strips clipping, adds proprietary notice + timestamp)
  -> C:\tmp\hpgl2\{part}.hpg
  -> ViewCompanion Pro converts to PostScript
  -> C:\tmp\ps\{part}.ps
  -> Adobe Distiller -> PDF

Work Order Packet

Header text file -> Adobe PDF printer -> hdr.ps -> hdr.pdf
Drawing list     -> SolidWorks/HPGL pipeline -> md.ps -> md.pdf
Trailer text     -> Adobe PDF printer -> trl.ps -> trl.pdf
All three merged via Acrobat COM API -> K:\WorkOrders\{WO}.pdf

Drawing Source Locations

TypePathUsed By
SolidWorks DrawingsX:\MasterDwgs\{part}.slddrwPrint, PDF, DWG export
SolidWorks PartsX:\MasterFiles\{part}.sldprtParasolid export
SolidWorks AssembliesX:\MasterFiles\{part}.sldasmParasolid export
CimCAD HPGLX:\CimCAD\HPGL\{part}.hpgPrint, PDF (fallback)
DWG FilesX:\DWGFiles\{part}.dwgNot used by ProPrintServer (legacy FastLook path only)

Note: X:\DWGFiles\ contains pre-exported DWG files but ProPrintServer does not read from this location. It always starts from .slddrw or .hpg source files.


Configuration Files

FilePurpose
S:\UnixShare\PrintQue\support\PrintersNew.txtPrinter queue definitions (CSV: name, port, folder)
S:\UnixShare\PrintQue\support\vc_convert.iniViewCompanion conversion settings
S:\UnixShare\PrintQue\support\vc_8511.iniViewCompanion 8.5x11 print settings
S:\UnixShare\PrintQue\support\vc_1117.iniViewCompanion 11x17 print settings
S:\UnixShare\PrintQue\support\UnixPlot\PSFiles\runfilex.psPostScript template for multi-drawing PDF merging

Dependencies

  • SolidWorks 2025 — Must be installed on the server; used via COM automation
  • Adobe Acrobat Distiller (acrodist.exe) — Converts PostScript to PDF
  • Adobe Acrobat COM Library — Merges multiple PDFs (work order packets)
  • ViewCompanion Pro — Converts HPGL to PostScript (C:\Program Files\Software Companions\ViewCompanion Pro\)
  • Adobe PDF Printer — Virtual printer for SolidWorks print-to-file

Temporary Working Directories

All on the local machine running ProPrintServer:

PathContents
C:\tmp\ps\PostScript intermediate files
C:\tmp\pdf\Temporary PDF files before move to final location
C:\tmp\hpgl\Copied HPGL source files
C:\tmp\hpgl2\Processed HPGL2 files (after clipping/notice injection)

Legacy Systems

ProPrintServer replaces two older VB6 applications:

Legacy AppSourceReplaced By
PSPrintServerS:\Dept\Computer\Development\PTI_VBP\PSPrintServerProPrintServer printer queues
PTIPDFConvertS:\Dept\Computer\Development\PTI_VBP\PTIPDFConvertProPrintServer PDF queue

The legacy apps used PDF995 printer driver and the old VB6 PdfDistiller COM object. The .NET version uses Adobe PDF printer and command-line acrodist.exe.

The legacy PSPrintServer also supported FastLook (fleng32.dll) for rendering DWG files directly to physical printers. This capability was not carried forward to ProPrintServer.


Troubleshooting

Request file not being picked up

  • Verify ProPrintServer is running on the print server machine
  • Check that the queue folder name matches PrintersNew.txt
  • For PDF queue: filename must NOT contain “PDF.TXT” (case-insensitive) — those are filtered out as legacy VB6 manual files
  • Check C:\temp\ for log files

Drawing not converting

  • Verify the .slddrw exists at X:\MasterDwgs\{part}.slddrw
  • For HPGL fallback: verify .hpg exists at X:\CimCAD\HPGL\{part}.hpg
  • DWG files at X:\DWGFiles\ are NOT used as input
  • Check that SolidWorks is installed and licensed on the server

Failed jobs

  • Failed request files are moved to the Failed\ subfolder within the queue
  • Check the application log at C:\temp\ for error details

Last updated: February 2026