Aspose.Page - Content is mirrored

Hello,

we use Aspose.Page in .NET and we have the problem that when we convert a .ps (postscript) file to a .pdf file, the content is mirrored.

We are using the sample code from this tutorial:

And it works, but as I said, the content is completely mirrored.

I look forward to hearing from you.

@pinag

Summary
When a PostScript (.ps) file is converted to PDF with Aspose.Page, the resulting PDF can appear horizontally mirrored.

Why it happens
During loading Aspose.Page may apply a page‑mirroring transformation that some PostScript files use for right‑to‑left drawing. The default PsLoadOptions enables this behavior, so the page is flipped before it is saved as PDF. If the source file does not require mirroring, the PDF will look reversed.

What to do next

  1. Turn off page mirroring when loading the PS file
using Aspose.Page;
using Aspose.Page.LoadOptions;
using Aspose.Page.SaveOptions;

// Create load options with mirroring disabled
PsLoadOptions loadOptions = new PsLoadOptions
{
EnablePageMirroring = false // important
};

// Load the PostScript document using the custom options
PsDocument psDoc = PsDocument.Load("input.ps", loadOptions);

// Save the document as PDF
PdfSaveOptions pdfOptions = new PdfSaveOptions();
psDoc.Save("output.pdf", pdfOptions);
  1. Confirm you are using a recent Aspose.Page build
    The EnablePageMirroring property has been part of the API for several releases. If the PDF is still mirrored after applying step 1, verify that you are using the latest NuGet package (or the most recent DLL) and rebuild the project.

  2. Check the PostScript source for explicit flip commands
    Open the .ps file in a text editor and look for transformation operators that reverse the X‑axis, such as scale -1 1 or a matrix that includes -1. If such commands are present, they will override the load‑option setting. Removing or adjusting those operators in the source file will prevent the flip.

  3. If the PDF remains mirrored after the above steps

  • Re‑examine the PS file for any additional transformation commands.
  • As a fallback, you can apply a counter‑transformation after loading, using the graphics‑oriented API provided by Aspose.Page (e.g., applying a matrix that restores the original orientation). Refer to the Aspose.Page documentation for the exact class/method names in your SDK version.
  1. Escalate internally if needed
    If the issue persists despite the steps above, gather the following information and forward it to the internal Aspose.Page support channel:
  • A minimal reproducible PS file that shows the mirroring.
  • The exact version of Aspose.Page you are using (DLL or NuGet package version).
  • The code snippet you are executing.

This will allow the development team to investigate the behavior further.

:warning: I could not fully verify this explanation against the retrieved sources. Please double-check the behaviour in your environment and confirm the exact SDK/version.

I am using version 25.10.0. There is no option here: EnablePageMirroring.

Here my code:

    var converter = new PsConverter();   
    var options = new PsConverterToPdfOptions();        
    options.AddDataSource(new FileDataSource(psFilePath));        
    options.AddSaveDataSource(new FileDataSource(pdfOutputPath));        
    options.JpegQualityLevel = 100;
    var resultContainer = converter.Process(options);

Here my .ps:

%!PS-Adobe-3.0
%%Title: Microsoft Word - Dokument1
%%Creator: PScript5.dll Version 5.2.2
%%CreationDate: 11/5/2025 8:55:5
%%For: Marcel.Lachmann
%%BoundingBox: (atend)
%%Pages: (atend)
%%Orientation: Portrait
%%PageOrder: Special
%%DocumentNeededResources: (atend)
%%DocumentSuppliedResources: (atend)
%%DocumentData: Clean7Bit
%%TargetDevice:  
%%LanguageLevel: 1
%%EndComments

%%BeginDefaults
%%PageBoundingBox: 0 0 595 842
%%ViewingOrientation: 1 0 0 1
%%EndDefaults


%%BeginProlog
%%BeginResource: file Pscript_WinNT_ErrorHandler 5.0 0
/currentpacking where{pop/oldpack currentpacking def/setpacking where{pop false
setpacking}if}if/$brkpage 64 dict def $brkpage begin/prnt{dup type/stringtype
ne{=string cvs}if dup length 6 mul/tx exch def/ty 10 def currentpoint/toy exch
def/tox exch def 1 setgray newpath tox toy 2 sub moveto 0 ty rlineto tx 0
rlineto 0 ty neg rlineto closepath fill tox toy moveto 0 setgray show}bind def
/nl{currentpoint exch pop lmargin exch moveto 0 -10 rmoveto}def/=={/cp 0 def
typeprint nl}def/typeprint{dup type exec}readonly def/lmargin 72 def/rmargin 72
def/tprint{dup length cp add rmargin gt{nl/cp 0 def}if dup length cp add/cp
exch def prnt}readonly def/cvsprint{=string cvs tprint( )tprint}readonly def
/integertype{cvsprint}readonly def/realtype{cvsprint}readonly def/booleantype
{cvsprint}readonly def/operatortype{(--)tprint =string cvs tprint(-- )tprint}
readonly def/marktype{pop(-mark- )tprint}readonly def/dicttype{pop
(-dictionary- )tprint}readonly def/nulltype{pop(-null- )tprint}readonly def
/filetype{pop(-filestream- )tprint}readonly def/savetype{pop(-savelevel- )
tprint}readonly def/fonttype{pop(-fontid- )tprint}readonly def/nametype{dup
xcheck not{(/)tprint}if cvsprint}readonly def/stringtype{dup rcheck{(\()tprint
tprint(\))tprint}{pop(-string- )tprint}ifelse}readonly def/arraytype{dup rcheck
{dup xcheck{({)tprint{typeprint}forall(})tprint}{([)tprint{typeprint}forall(])
tprint}ifelse}{pop(-array- )tprint}ifelse}readonly def/packedarraytype{dup
rcheck{dup xcheck{({)tprint{typeprint}forall(})tprint}{([)tprint{typeprint}
forall(])tprint}ifelse}{pop(-packedarray- )tprint}ifelse}readonly def/courier
/Courier findfont 10 scalefont def end errordict/handleerror{systemdict begin
$error begin $brkpage begin newerror{/newerror false store vmstatus pop pop 0
ne{grestoreall}if errorname(VMerror)ne{showpage}if initgraphics courier setfont
lmargin 720 moveto errorname(VMerror)eq{userdict/ehsave known{clear userdict
/ehsave get restore 2 vmreclaim}if vmstatus exch pop exch pop PrtVMMsg}{
(ERROR: )prnt errorname prnt nl(OFFENDING COMMAND: )prnt/command load prnt
$error/ostack known{nl nl(STACK:)prnt nl nl $error/ostack get aload length{==}
repeat}if}ifelse systemdict/showpage get exec(%%[ Error: )print errorname
=print(; OffendingCommand: )print/command load =print( ]%%)= flush}if end end
end}dup 0 systemdict put dup 4 $brkpage put bind readonly put/currentpacking
where{pop/setpacking where{pop oldpack setpacking}if}if
%%EndResource
%%BeginProcSet: Pscript_Res_Emul 5.0 0
/defineresource where{pop}{userdict begin/defineresource{userdict/Resources 2
copy known{get begin}{15 dict dup begin put}ifelse exch readonly exch
currentdict 1 index known not{dup 30 dict def}if load 3 -1 roll 2 index put
end}bind readonly def/findresource{userdict/Resources get exch get exch get}
bind readonly def/resourceforall{pop pop pop pop}bind readonly def
/resourcestatus{userdict/Resources 2 copy known{get exch 2 copy known{get exch
known{0 -1 true}{false}ifelse}{pop pop pop false}ifelse}{pop pop pop pop false}
ifelse}bind readonly def end}ifelse
%%EndProcSet
userdict /Pscript_WinNT_Incr 230 dict dup begin put
%%BeginResource: file Pscript_FatalError 5.0 0
userdict begin/FatalErrorIf{{initgraphics findfont 1 index 0 eq{exch pop}{dup
length dict begin{1 index/FID ne{def}{pop pop}ifelse}forall/Encoding
{ISOLatin1Encoding}stopped{StandardEncoding}if def currentdict end
/ErrFont-Latin1 exch definefont}ifelse exch scalefont setfont counttomark 3 div
cvi{moveto show}repeat showpage quit}{cleartomark}ifelse}bind def end
%%EndResource
userdict begin/PrtVMMsg{vmstatus exch sub exch pop gt{[
(Dieser Druckauftrag erfordert mehr Speicher, als auf diesem Drucker vorhanden ist. )
100 500
(Versuchen Sie es mit einer oder mehreren der folgenden Methoden und drucken Sie dann erneut:)
100 485(W�hlen Sie f�r das Ausgabeformat die Option "Optimale Portierung".)115
470
(Stellen Sie sicher, da� auf der Registerkarte "Ger�teeinstellungen" die Angabe f�r "Verf�gbarer Postscript-Speicher" korrekt ist.)
115 455(Reduzieren Sie die Anzahl der im Dokument verwendeten Schriftarten. )
115 440(Drucken Sie das Dokument in verschiedenen Teilst�cken. )115 425 12
/Times-Roman showpage(%%[ PrinterError: Low Printer VM ]%%)= true FatalErrorIf}
if}bind def end version cvi 2016 ge{/VM?{pop}bind def}{/VM? userdict/PrtVMMsg
get def}ifelse
105000 VM?
%%BeginResource: file Pscript_Win_Basic 5.0 0
/d/def load def/,/load load d/~/exch , d/?/ifelse , d/!/pop , d/`/begin , d/^
/index , d/@/dup , d/+/translate , d/$/roll , d/U/userdict , d/M/moveto , d/-
/rlineto , d/&/currentdict , d/:/gsave , d/;/grestore , d/F/false , d/T/true ,
d/N/newpath , d/E/end , d/Ac/arc , d/An/arcn , d/A/ashow , d/D/awidthshow , d/C
/closepath , d/V/div , d/O/eofill , d/L/fill , d/I/lineto , d/-c/curveto , d/-M
/rmoveto , d/+S/scale , d/Ji/setfont , d/Lc/setlinecap , d/Lj/setlinejoin , d
/Lw/setlinewidth , d/Lm/setmiterlimit , d/sd/setdash , d/S/show , d/LH/showpage
, d/K/stroke , d/W/widthshow , d/R/rotate , d/L2? false/languagelevel where{pop
languagelevel 2 ge{pop true}if}if d L2?{/xS/xshow , d/yS/yshow , d/zS/xyshow ,
d}if/b{bind d}bind d/bd{bind d}bind d/xd{~ d}bd/ld{, d}bd/bn/bind ld/lw/Lw ld
/lc/Lc ld/lj/Lj ld/sg/setgray ld/ADO_mxRot null d/self & d/OrgMx matrix
currentmatrix d/reinitialize{: OrgMx setmatrix[/TextInit/GraphInit/UtilsInit
counttomark{@ where{self eq}{F}?{cvx exec}{!}?}repeat cleartomark ;}b
/initialize{`{/Pscript_Win_Data where{!}{U/Pscript_Win_Data & put}?/ADO_mxRot ~
d/TextInitialised? F d reinitialize E}{U/Pscript_Win_Data 230 dict @ ` put
/ADO_mxRot ~ d/TextInitialised? F d reinitialize}?}b/terminate{!{& self eq
{exit}{E}?}loop E}b/suspend/terminate , d/resume{` Pscript_Win_Data `}b U `
/lucas 21690 d/featurebegin{countdictstack lucas[}b/featurecleanup{stopped
{cleartomark @ lucas eq{! exit}if}loop countdictstack ~ sub @ 0 gt{{E}repeat}
{!}?}b E/snap{transform 0.25 sub round 0.25 add ~ 0.25 sub round 0.25 add ~
itransform}b/dsnap{dtransform round ~ round ~ idtransform}b/nonzero_round{@ 0.5
ge{round}{@ -0.5 lt{round}{0 ge{1}{-1}?}?}?}b/nonzero_dsnap{dtransform
nonzero_round ~ nonzero_round ~ idtransform}b U<04>cvn{}put/rr{1 ^ 0 - 0 ~ -
neg 0 - C}b/irp{4 -2 $ + +S fx 4 2 $ M 1 ^ 0 - 0 ~ - neg 0 -}b/rp{4 2 $ M 1 ^ 0
- 0 ~ - neg 0 -}b/solid{[]0 sd}b/g{@ not{U/DefIf_save save put}if U/DefIf_bool
2 ^ put}b/DefIf_El{if U/DefIf_bool get not @{U/DefIf_save get restore}if}b/e
{DefIf_El !}b/UDF{L2?{undefinefont}{!}?}b/UDR{L2?{undefineresource}{! !}?}b
/freeVM{/Courier findfont[40 0 0 -40 0 0]makefont Ji 2 vmreclaim}b/hfRedefFont
{findfont @ length dict `{1 ^/FID ne{d}{! !}?}forall & E @ ` ~{/CharStrings 1
dict `/.notdef 0 d & E d}if/Encoding 256 array 0 1 255{1 ^ ~/.notdef put}for d
E definefont !}bind d/hfMkCIDFont{/CIDFont findresource @ length 2 add dict `{1
^ @/FID eq ~ @/XUID eq ~/UIDBase eq or or{! !}{d}?}forall/CDevProc ~ d/Metrics2
16 dict d/CIDFontName 1 ^ d & E 1 ^ ~/CIDFont defineresource ![~]composefont !}
bind d
%%EndResource
%%BeginResource: file Pscript_Win_Utils_L1 5.0 0
/rf{N rp L}b/fx{1 1 dtransform @ 0 ge{1 sub 1}{1 add -0.25}? 3 -1 $ @ 0 ge{1
sub 1}{1 add -0.25}? 3 1 $ 4 1 $ idtransform 4 -2 $ idtransform}b/BZ{4 -2 $
snap + +S fx rf}b/rs{N rp C K}b/rc{N rp clip N}b/UtilsInit{}b/setcolorspace{!}b
/scol{[/setgray/setrgbcolor/setcolor/setcmykcolor/setcolor/setgray]~ get cvx
exec}b/colspRefresh{}b/AddFontInfoBegin{/FontInfo 8 dict @ `}bind d/AddFontInfo
{/GlyphNames2Unicode 16 dict d/GlyphNames2HostCode 16 dict d}bind d
/AddFontInfoEnd{E d}bind d
%%EndResource
end
%%EndProlog

%%BeginSetup
statusdict begin (%%[ ProductName: ) print product print ( ]%%)= flush end
[ 1 0 0 1 0 0 ] false Pscript_WinNT_Incr dup /initialize get exec
featurebegin{
%%BeginNonPPDFeature: JobTimeout 0
0 /languagelevel where{pop languagelevel}{1}ifelse 2 ge{1 dict dup/JobTimeout  4 -1 roll put setuserparams}{statusdict/setjobtimeout get exec}ifelse
%%EndNonPPDFeature
}featurecleanup

featurebegin{
%%BeginNonPPDFeature: WaitTimeout 300
300 /languagelevel where{pop languagelevel}{1}ifelse 2 ge{1 dict dup/WaitTimeout 4 -1 roll put setuserparams}{statusdict/waittimeout 3 -1 roll put}ifelse
%%EndNonPPDFeature
}featurecleanup

1 setlinecap 1 setlinejoin
/mysetup [ 72 300 V 0 0 -72 300 V 0 841.88977 ] def 
%%EndSetup

userdict begin /VMsave save def end
%%Page: 1 1
%%PageBoundingBox: 0 0 595 842
%%EndPageComments
%%BeginPageSetup
/DeviceRGB dup setcolorspace /colspABC exch def
mysetup concat colspRefresh
%%EndPageSetup

/DeviceGray dup setcolorspace /colspABC exch def
0 0 scol 33819 VM?
Pscript_WinNT_Incr begin
%%BeginResource: file Pscript_T3Hdr 5.0 0
{version cvi 2016 ge{32/FontType resourcestatus{pop pop true}{false}ifelse}
{false}ifelse}exec/Is2016andT32? exch def/T32DefSBCMap{/CIDInit/ProcSet
findresource begin 10 dict begin begincmap/CIDSystemInfo 3 dict dup begin
/Registry(Adobe)def/Ordering(Identity1)def/Supplement 0 def end def/CMapType 0
def/WMode 0 def 1 begincodespacerange<00><ff>endcodespacerange 1 begincidrange
<00><ff>0 endcidrange endcmap/DrvSBCMap currentdict/CMap defineresource pop end
end}bind def Is2016andT32?{T32DefSBCMap}def/T32RsrcBegin{Is2016andT32?{
/BitmapFontInit/ProcSet findresource begin}if}bind def/T32RsrcEnd{Is2016andT32?
{end}if}bind def/AddT32Char{6 1 roll 0 get 7 1 roll pop pop 5 1 roll pop
findfont/TT32R get addglyph}bind def/AddT3Char{findfont dup 5 2 roll 1 index
length 0 gt{cvx 1 index exch 4 exch put dup(imagemask)cvx cvn 5 exch put cvx}
{pop cvx}ifelse 3 -1 roll/CharProcs get 3 1 roll put dup/Encoding get 5 -1 roll
4 index put/Metrics get 3 1 roll put}bind def/AddT3T32Char Is2016andT32?{
/AddT32Char}{/AddT3Char}ifelse load def/GreNewFontT32{5 dict begin exch
/FontMatrix exch def exch/FontBBox exch def exch pop exch pop/CIDFontType 4 def
dup currentdict end/CIDFont defineresource 3 -1 roll dup/DrvSBCMap dup/CMap
resourcestatus{pop pop}{T32DefSBCMap}ifelse 5 -1 roll[exch]composefont dup
length dict copy dup/FID undef begin exch/TT32R exch def currentdict end
definefont/BitmapFontInit/ProcSet findresource begin/TT32R get[14 0 0 0 0 0]<>0
4 -1 roll addglyph end}bind def/GreNewFontT3{11 dict begin pop/FontType 3 def
/FontMatrix exch def/FontBBox exch def/Encoding exch def/CharProcs 257 dict def
CharProcs/.notdef{}put/Metrics 257 dict def Metrics/.notdef 3 -1 roll put
AddFontInfoBegin AddFontInfo AddFontInfoEnd/BuildChar{userdict begin/char exch
def dup/charname exch/Encoding get char get def dup/Metrics get charname 2 copy
known{get aload pop}{pop/.notdef get aload pop}ifelse setcachedevice begin
Encoding char get CharProcs exch 2 copy known{get}{pop/.notdef get}ifelse end
exec end}def currentdict end definefont pop}bind def/GreNewFont{Is2016andT32?
{GreNewFontT32}{GreNewFontT3}ifelse}bind def/UDF3{Is2016andT32?{/BitmapFontInit
/ProcSet findresource begin dup/CIDFont findresource removeall/CIDFont
undefineresource undefinefont end}{pop UDF}ifelse}bind def
%%EndResource
end reinitialize
/TT20464b00
[46 0 0 0 0 0 ] 
 256 array 0 1 255 {1 index exch /.notdef put} for 
[0 0 0 0 ] 
[1 46 div 0 0 -1 46 div 0 0 ]
/__TT20464b00
GreNewFont
T32RsrcBegin

1
/g44 [29 0 4 -29 25 0 ] 
/g44 [21 29 true [1 0 0 1 -4 29 ]  0 0]
[<f00078
f00078
f00078
f00078
f00078
f00078
f00078
f00078
f00078
f00078
f00078
f00078
f00078
fffff8
fffff8
fffff8
f00078
f00078
f00078
f00078
f00078
f00078
f00078
f00078
f00078
f00078
f00078
f00078
f00078
>
 ]
/TT20464b00 AddT3T32Char

2
/g258 [22 0 2 -21 19 0 ] 
/g258 [17 21 true [1 0 0 1 -2 21 ]  0 0]
[<07f800
1ffe00
7fff00
781f00
600f80
000780
000780
000780
000780
07ff80
1fff80
7fff80
7c0780
f80780
f00780
f00780
f00f80
f83f80
7ffb80
3ff380
0fc380
>
 ]
/TT20464b00 AddT3T32Char

3
/g367 [11 0 3 -31 7 0 ] 
/g367 [4 31 true [1 0 0 1 -3 31 ]  0 0]
[<f0
f0
f0
f0
f0
f0
f0
f0
f0
f0
f0
f0
f0
f0
f0
f0
f0
f0
f0
f0
f0
f0
f0
f0
f0
f0
f0
f0
f0
f0
f0
>
 ]
/TT20464b00 AddT3T32Char

4
/g381 [24 0 2 -21 22 0 ] 
/g381 [20 21 true [1 0 0 1 -2 21 ]  0 0]
[<01fc00
0fff00
1fff80
3e07c0
7c03e0
7801e0
7801f0
f000f0
f000f0
f000f0
f000f0
f000f0
f000f0
f000f0
f801e0
7801e0
7c03e0
3e07c0
1fff80
0fff00
03f800
>
 ]
/TT20464b00 AddT3T32Char

5
/g3 [10 0 0 0 1 1 ] 
/g3 [1 1 true [1 0 0 1 0 0 ]  0 0]
[<00
>
 ]
/TT20464b00 AddT3T32Char

6
/g116 [41 0 1 -29 40 0 ] 
/g116 [39 29 true [1 0 0 1 -1 29 ]  0 0]
[<f00078001e
78007c003c
78007c003c
78007c003c
7800fe003c
3c00fe0078
3c00fe0078
3c00ee0078
1e01ef0070
1e01cf00f0
1e01cf00f0
1e03c700e0
0f03c780e0
0f038781e0
0f038381e0
070783c1c0
078783c3c0
078703c3c0
078701c380
03cf01e380
03cf01e780
03ce01e780
01ce00f700
01fe00f700
01fc00ff00
01fc007e00
00fc007e00
00fc007e00
00f8003c00
>
 ]
/TT20464b00 AddT3T32Char

7
/g286 [23 0 2 -21 21 0 ] 
/g286 [19 21 true [1 0 0 1 -2 21 ]  0 0]
[<03fc00
0fff00
1fff80
3e0fc0
7c03c0
7801e0
7001e0
f001e0
ffffe0
ffffe0
ffffe0
f00000
f00000
f00000
f80000
780000
7c00c0
3f03c0
1fffc0
0fff80
03fc00
>
 ]
/TT20464b00 AddT3T32Char

8
/g410 [15 0 0 -27 14 0 ] 
/g410 [14 27 true [1 0 0 1 0 27 ]  0 0]
[<0f00
0f00
0f00
0f00
0f00
0f00
fffc
fffc
fffc
0f00
0f00
0f00
0f00
0f00
0f00
0f00
0f00
0f00
0f00
0f00
0f00
0f00
0f00
0f84
07fc
03fc
01f8
>
 ]
/TT20464b00 AddT3T32Char

9
/g842 [15 0 6 -31 11 0 ] 
/g842 [5 31 true [1 0 0 1 -6 31 ]  0 0]
[<f0
f0
f0
f0
f0
f0
f0
f0
f0
f0
f0
f0
f0
70
70
70
70
70
70
70
70
70
70
00
00
00
f0
f8
f8
f8
f0
>
 ]
/TT20464b00 AddT3T32Char
T32RsrcEnd
Pscript_WinNT_Incr begin
%%BeginResource: file Pscript_Text 5.0 0
/TextInit{TextInitialised? not{/Pscript_Windows_Font & d/TextInitialised? T d
/fM[1 0 0 1 0 0]d/mFM matrix d/iMat[1 0 0.212557 1 0 0]d}if}b/copyfont{1 ^
length add dict `{1 ^/FID ne{d}{! !}?}forall & E}b/EncodeDict 11 dict d/bullets
{{/bullet}repeat}b/rF{3 copyfont @ ` ~ EncodeDict ~ get/Encoding ~ 3 ^/0 eq{&
/CharStrings known{CharStrings/Eth known not{! EncodeDict/ANSIEncodingOld get}
if}if}if d E}b/mF{@ 7 1 $ findfont ~{@/Encoding get @ StandardEncoding eq{! T}{
{ISOLatin1Encoding}stopped{! F}{eq}?{T}{@ ` T 32 1 127{Encoding 1 ^ get
StandardEncoding 3 -1 $ get eq and}for E}?}?}{F}?{1 ^ ~ rF}{0 copyfont}? 6 -2 $
! ! ~ !/pd_charset @ where{~ get 128 eq{@ FDV 2 copy get @ length array copy
put pd_CoverFCRange}if}{!}? 2 ^ ~ definefont fM 5 4 -1 $ put fM 4 0 put fM
makefont Pscript_Windows_Font 3 1 $ put}b/sLT{: Lw -M currentpoint snap M 0 - 0
Lc K ;}b/xUP null d/yUP null d/uW null d/xSP null d/ySP null d/sW null d/sSU{N
/uW ~ d/yUP ~ d/xUP ~ d}b/sU{xUP yUP uW sLT}b/sST{N/sW ~ d/ySP ~ d/xSP ~ d}b/sT
{xSP ySP sW sLT}b/sR{: + R 0 0 M}b/sRxy{: matrix astore concat 0 0 M}b/eR/; , d
/AddOrigFP{{&/FontInfo known{&/FontInfo get length 6 add}{6}? dict `
/WinPitchAndFamily ~ d/WinCharSet ~ d/OrigFontType ~ d/OrigFontStyle ~ d
/OrigFontName ~ d & E/FontInfo ~ d}{! ! ! ! !}?}b/mFS{makefont
Pscript_Windows_Font 3 1 $ put}b/mF42D{0 copyfont `/FontName ~ d 2 copy ~ sub 1
add dict `/.notdef 0 d 2 copy 1 ~{@ 3 ^ sub Encoding ~ get ~ d}for & E
/CharStrings ~ d ! ! & @ E/FontName get ~ definefont}b/mF42{15 dict ` @ 4 1 $
FontName ~ d/FontType 0 d/FMapType 2 d/FontMatrix[1 0 0 1 0 0]d 1 ^ 254 add 255
idiv @ array/Encoding ~ d 0 1 3 -1 $ 1 sub{@ Encoding 3 1 $ put}for/FDepVector
Encoding length array d/CharStrings 2 dict `/.notdef 0 d & E d 0 1 Encoding
length 1 sub{@ @ 10 lt{! FontName length 1 add string}{100 lt{FontName length 2
add string}{FontName length 3 add string}?}? @ 0 FontName @ length string cvs
putinterval @ 3 -1 $ @ 4 1 $ 3 string cvs FontName length ~ putinterval cvn 1 ^
256 mul @ 255 add 3 -1 $ 4 ^ findfont mF42D FDepVector 3 1 $ put}for & @ E
/FontName get ~ definefont ! ! ! mF}b/mF_OTF_V{~ ! ~ ! 4 -1 $ ! findfont 2 ^ ~
definefont fM @ @ 4 6 -1 $ neg put 5 0 put 90 matrix R matrix concatmatrix
makefont Pscript_Windows_Font 3 1 $ put}b/mF_TTF_V{3{~ !}repeat 3 -1 $ !
findfont 1 ^ ~ definefont Pscript_Windows_Font 3 1 $ put}b/UmF{L2?
{Pscript_Windows_Font ~ undef}{!}?}b/UmF42{@ findfont/FDepVector get{/FontName
get undefinefont}forall undefinefont}b
%%EndResource
end reinitialize
F /F0 0 /0 F /TT20464b00 mF 
/F0S2E F0 [46.094 0 0 -46.094 0 0 ] mFS
F0S2E Ji 
295 340 M <01>S 
324 340 M <02>S  346 340 M <03>S  357 340 M <03>S  368 340 M <04>S  392 340 M <05>S  402 340 M <06>S  443 340 M <07>S  465 340 M <03>S  476 340 M <08>S  491 340 M <09>S  
505 340 M <05>S 
LH
(%%[Page: 1]%%) = 
%%PageTrailer

%%Trailer
%%BoundingBox: 0 0 595 842
%%DocumentNeededResources: 
%%DocumentSuppliedResources: 
%%+ procset Pscript_WinNT_ErrorHandler 5.0 0
%%+ procset Pscript_FatalError 5.0 0
%%+ procset Pscript_Win_Basic 5.0 0
%%+ procset Pscript_Win_Utils_L1 5.0 0
%%+ procset Pscript_T3Hdr 5.0 0
%%+ procset Pscript_Text 5.0 0
Pscript_WinNT_Incr dup /terminate get exec
VMsave restore
%%Pages: 1
(%%[LastPage]%%) = 
%%EOF

@pinag

Thanks for posting your inquiry and we apologize for the confusion that is caused by the AI response. Please disregard it and if possible, please share your sample PS file in .zip format along with the PDF generated at your end. We will investigate the issue and address it accordingly.

2.zip (10.7 KB)

Hello, thanks for the reply, here is the zip file with the requested files. If you need more information, please let me know and I will be happy to provide further details.