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
PSPrintServerandPTIPDFConvertapplications.
Overview
| Metric | Value |
|---|---|
| Source | C:\git\PSI.All\ProPrintServer |
| Framework | VB.NET / .NET Framework 4.6.1 / WinForms |
| SolidWorks | SW2025 SP3 Interop |
| Queue Path | S:\UnixShare\PrintQue\Requests\ |
| Config | S:\UnixShare\PrintQue\support\PrintersNew.txt |
| Poll Interval | 15 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:
- Parses the request file
- Processes each drawing
- Deletes the request file on success (moves to
Failed\subfolder on error)
Job Types
| Job Type | Queue | Source Files | Output | Tools |
|---|---|---|---|---|
| Drawing Print | PT002, PT034, etc. | .slddrw or .hpg | Physical printer via \\fs2\{printer} | SolidWorks API, ViewCompanion |
| Work Order Packet | PT002 (with header matching [A-Z]#####) | .slddrw or .hpg | Merged PDF at K:\WorkOrders\{WO}.pdf | SolidWorks + Adobe PDF + Distiller + Acrobat |
| Service Manual PDF | PDF | .slddrw or .hpg | K:\Project\{proj}\man\pdfman\pdfdocs\ | SolidWorks + Adobe PDF + Distiller |
| DWG Export | DWG | .slddrw | U:\{owner}\dwg\{part}.dwg | SolidWorks SaveAs |
| Parasolid Export | Parasolid | .sldprt / .sldasm | X:\Parasolid\{part}.x_t | SolidWorks 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
| Type | Path | Used By |
|---|---|---|
| SolidWorks Drawings | X:\MasterDwgs\{part}.slddrw | Print, PDF, DWG export |
| SolidWorks Parts | X:\MasterFiles\{part}.sldprt | Parasolid export |
| SolidWorks Assemblies | X:\MasterFiles\{part}.sldasm | Parasolid export |
| CimCAD HPGL | X:\CimCAD\HPGL\{part}.hpg | Print, PDF (fallback) |
| DWG Files | X:\DWGFiles\{part}.dwg | Not 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.slddrwor.hpgsource files.
Configuration Files
| File | Purpose |
|---|---|
S:\UnixShare\PrintQue\support\PrintersNew.txt | Printer queue definitions (CSV: name, port, folder) |
S:\UnixShare\PrintQue\support\vc_convert.ini | ViewCompanion conversion settings |
S:\UnixShare\PrintQue\support\vc_8511.ini | ViewCompanion 8.5x11 print settings |
S:\UnixShare\PrintQue\support\vc_1117.ini | ViewCompanion 11x17 print settings |
S:\UnixShare\PrintQue\support\UnixPlot\PSFiles\runfilex.ps | PostScript 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:
| Path | Contents |
|---|---|
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 App | Source | Replaced By |
|---|---|---|
| PSPrintServer | S:\Dept\Computer\Development\PTI_VBP\PSPrintServer | ProPrintServer printer queues |
| PTIPDFConvert | S:\Dept\Computer\Development\PTI_VBP\PTIPDFConvert | ProPrintServer 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
.slddrwexists atX:\MasterDwgs\{part}.slddrw - For HPGL fallback: verify
.hpgexists atX:\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