mirror of
https://github.com/unidoc/unipdf.git
synced 2025-04-26 13:48:55 +08:00
144 lines
37 KiB
Go
144 lines
37 KiB
Go
//
|
|
// Copyright 2020 FoxyUtils ehf. All rights reserved.
|
|
//
|
|
// This is a commercial product and requires a license to operate.
|
|
// A trial license can be obtained at https://unidoc.io
|
|
//
|
|
// DO NOT EDIT: generated by unitwist Go source code obfuscator.
|
|
//
|
|
// Use of this source code is governed by the UniDoc End User License Agreement
|
|
// terms that can be accessed at https://unidoc.io/eula/
|
|
|
|
package render ;import (_e "errors";_af "fmt";_fbb "github.com/adrg/sysfont";_da "github.com/unidoc/unipdf/v3/common";_ed "github.com/unidoc/unipdf/v3/contentstream";_ag "github.com/unidoc/unipdf/v3/contentstream/draw";_ee "github.com/unidoc/unipdf/v3/core";
|
|
_afg "github.com/unidoc/unipdf/v3/internal/license";_fc "github.com/unidoc/unipdf/v3/internal/transform";_gb "github.com/unidoc/unipdf/v3/model";_dbg "github.com/unidoc/unipdf/v3/render/internal/context";_de "github.com/unidoc/unipdf/v3/render/internal/context/imagerender";
|
|
_fe "golang.org/x/image/draw";_db "image";_fb "image/color";_eb "image/draw";_c "image/jpeg";_fd "image/png";_d "math";_g "os";_a "path/filepath";_ef "strings";);func _cbfb (_fbbd _ee .PdfObject ,_bee _fb .Color )(_db .Image ,error ){_baa ,_aeb :=_ee .GetStream (_fbbd );
|
|
if !_aeb {return nil ,nil ;};_fa ,_bedba :=_gb .NewXObjectImageFromStream (_baa );if _bedba !=nil {return nil ,_bedba ;};_bcb ,_bedba :=_fa .ToImage ();if _bedba !=nil {return nil ,_bedba ;};return _edc (_bcb ,_bee ),nil ;};type renderer struct{_dd float64 };
|
|
func _gdc (_bbb string ,_bfa _db .Image )error {_edbg ,_gbdb :=_g .Create (_bbb );if _gbdb !=nil {return _gbdb ;};defer _edbg .Close ();return _fd .Encode (_edbg ,_bfa );};
|
|
|
|
// RenderToPath converts the specified PDF page into an image and saves the
|
|
// result at the specified location.
|
|
func (_daf *ImageDevice )RenderToPath (page *_gb .PdfPage ,outputPath string )error {_gec ,_gce :=_daf .Render (page );if _gce !=nil {return _gce ;};_bc :=_ef .ToLower (_a .Ext (outputPath ));if _bc ==""{return _e .New ("\u0063\u006ful\u0064\u0020\u006eo\u0074\u0020\u0072\u0065cog\u006eiz\u0065\u0020\u006f\u0075\u0074\u0070\u0075t \u0066\u0069\u006c\u0065\u0020\u0074\u0079p\u0065");
|
|
};switch _bc {case "\u002e\u0070\u006e\u0067":return _gdc (outputPath ,_gec );case "\u002e\u006a\u0070\u0067","\u002e\u006a\u0070e\u0067":return _ede (outputPath ,_gec ,100);};return _af .Errorf ("\u0075\u006e\u0072\u0065\u0063\u006fg\u006e\u0069\u007a\u0065\u0064\u0020\u006f\u0075\u0074\u0070\u0075\u0074\u0020f\u0069\u006c\u0065\u0020\u0074\u0079\u0070e\u003a\u0020\u0025\u0073",_bc );
|
|
};func _cgb (_cca ,_fba _db .Image )_db .Image {_adcf ,_ecg :=_fba .Bounds ().Size (),_cca .Bounds ().Size ();_cac ,_fbf :=_adcf .X ,_adcf .Y ;if _ecg .X > _cac {_cac =_ecg .X ;};if _ecg .Y > _fbf {_fbf =_ecg .Y ;};_fbbe :=_db .Rect (0,0,_cac ,_fbf );if _adcf .X !=_cac ||_adcf .Y !=_fbf {_gbe :=_db .NewRGBA (_fbbe );
|
|
_fe .BiLinear .Scale (_gbe ,_fbbe ,_cca ,_fba .Bounds (),_fe .Over ,nil );_fba =_gbe ;};if _ecg .X !=_cac ||_ecg .Y !=_fbf {_ecac :=_db .NewRGBA (_fbbe );_fe .BiLinear .Scale (_ecac ,_fbbe ,_cca ,_cca .Bounds (),_fe .Over ,nil );_cca =_ecac ;};_dce :=_db .NewRGBA (_fbbe );
|
|
_fe .DrawMask (_dce ,_fbbe ,_cca ,_db .Point {},_fba ,_db .Point {},_fe .Over );return _dce ;};
|
|
|
|
// Render converts the specified PDF page into an image and returns the result.
|
|
func (_ff *ImageDevice )Render (page *_gb .PdfPage )(_db .Image ,error ){_ca ,_gc :=page .GetMediaBox ();if _gc !=nil {return nil ,_gc ;};_ca .Normalize ();_aff :=page .CropBox ;var _ea ,_cad float64 ;if _aff !=nil {_aff .Normalize ();_ea ,_cad =_aff .Width (),_aff .Height ();
|
|
};_dc :=page .Rotate ;_agb ,_gd ,_fea ,_fg :=_ca .Llx ,_ca .Lly ,_ca .Width (),_ca .Height ();_efa :=_fc .IdentityMatrix ();if _dc !=nil &&*_dc %360!=0&&*_dc %90==0{_efag :=-float64 (*_dc );_cd :=_aebe (_fea ,_fg ,_efag );_efa =_efa .Translate ((_cd .Width -_fea )/2+_fea /2,(_cd .Height -_fg )/2+_fg /2).Rotate (_efag *_d .Pi /180).Translate (-_fea /2,-_fg /2);
|
|
_fea ,_fg =_cd .Width ,_cd .Height ;if _aff !=nil {_eac :=_aebe (_ea ,_cad ,_efag );_ea ,_cad =_eac .Width ,_eac .Height ;};};if _agb !=0||_gd !=0{_efa =_efa .Translate (-_agb ,-_gd );};_ff ._dd =1.0;if _ff .OutputWidth !=0{_ad :=_fea ;if _aff !=nil {_ad =_ea ;
|
|
};_ff ._dd =float64 (_ff .OutputWidth )/_ad ;_fea ,_fg ,_ea ,_cad =_fea *_ff ._dd ,_fg *_ff ._dd ,_ea *_ff ._dd ,_cad *_ff ._dd ;_efa =_fc .ScaleMatrix (_ff ._dd ,_ff ._dd ).Mult (_efa );};_eag :=_de .NewContext (int (_fea ),int (_fg ));if _ge :=_ff .renderPage (_eag ,page ,_efa );
|
|
_ge !=nil {return nil ,_ge ;};_eee :=_eag .Image ();if _aff !=nil {_fbe ,_be :=(_aff .Llx -_agb )*_ff ._dd ,(_aff .Lly -_gd )*_ff ._dd ;_agd :=_db .Rect (0,0,int (_ea ),int (_cad ));_feaf :=_db .Pt (int (_fbe ),int (_fg -_be -_cad ));_fcd :=_db .NewRGBA (_agd );
|
|
_eb .Draw (_fcd ,_agd ,_eee ,_feaf ,_eb .Src );_eee =_fcd ;};return _eee ,nil ;};func _edc (_fcc *_gb .Image ,_gcfe _fb .Color )_db .Image {_adge ,_aga :=int (_fcc .Width ),int (_fcc .Height );_efd :=_db .NewRGBA (_db .Rect (0,0,_adge ,_aga ));for _fcce :=0;
|
|
_fcce < _aga ;_fcce ++{for _debe :=0;_debe < _adge ;_debe ++{_cbc ,_fca :=_fcc .ColorAt (_debe ,_fcce );if _fca !=nil {_da .Log .Debug ("\u0057\u0041\u0052\u004e\u003a\u0020\u0063o\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020\u0072\u0065\u0074\u0072\u0069\u0065v\u0065 \u0069\u006d\u0061\u0067\u0065\u0020m\u0061\u0073\u006b\u0020\u0076\u0061\u006cu\u0065\u0020\u0061\u0074\u0020\u0028\u0025\u0064\u002c\u0020\u0025\u0064\u0029\u002e\u0020\u004f\u0075\u0074\u0070\u0075\u0074\u0020\u006da\u0079\u0020\u0062\u0065\u0020\u0069\u006e\u0063\u006f\u0072\u0072\u0065\u0063t\u002e",_debe ,_fcce );
|
|
continue ;};_ecd ,_ggdc ,_bedg ,_ :=_cbc .RGBA ();var _gfff _fb .Color ;if _ecd +_ggdc +_bedg ==0{_gfff =_gcfe ;}else {_gfff =_fb .Transparent ;};_efd .Set (_debe ,_fcce ,_gfff );};};return _efd ;};func _aebe (_bcbc ,_ddf ,_ccd float64 )_ag .BoundingBox {return _ag .Path {Points :[]_ag .Point {_ag .NewPoint (0,0).Rotate (_ccd ),_ag .NewPoint (_bcbc ,0).Rotate (_ccd ),_ag .NewPoint (0,_ddf ).Rotate (_ccd ),_ag .NewPoint (_bcbc ,_ddf ).Rotate (_ccd )}}.GetBoundingBox ();
|
|
};func _ede (_feba string ,_fgg _db .Image ,_aag int )error {_ggd ,_adb :=_g .Create (_feba );if _adb !=nil {return _adb ;};defer _ggd .Close ();return _c .Encode (_ggd ,_fgg ,&_c .Options {Quality :_aag });};func (_dff renderer )renderContentStream (_ae _dbg .Context ,_eacf string ,_bb *_gb .PdfPageResources )error {_bca ,_ga :=_ed .NewContentStreamParser (_eacf ).Parse ();
|
|
if _ga !=nil {return _ga ;};_fee :=_ae .TextState ();_fee .GlobalScale =_dff ._dd ;_dbe :=map[string ]*_dbg .TextFont {};_ec :=_fbb .NewFinder (&_fbb .FinderOpts {Extensions :[]string {"\u002e\u0074\u0074\u0066","\u002e\u0074\u0074\u0063"}});_gceg :=_ed .NewContentStreamProcessor (*_bca );
|
|
_gceg .AddHandler (_ed .HandlerConditionEnumAllOperands ,"",func (_cadd *_ed .ContentStreamOperation ,_bg _ed .GraphicsState ,_bed *_gb .PdfPageResources )error {_da .Log .Debug ("\u0050\u0072\u006f\u0063\u0065\u0073\u0073\u0069\u006e\u0067\u0020\u0025\u0073",_cadd .Operand );
|
|
switch _cadd .Operand {case "\u0071":_ae .Push ();case "\u0051":_ae .Pop ();_fee =_ae .TextState ();case "\u0063\u006d":if len (_cadd .Params )!=6{return _affa ;};_dbf ,_cg :=_ee .GetNumbersAsFloat (_cadd .Params );if _cg !=nil {return _cg ;};_gbg :=_fc .NewMatrix (_dbf [0],_dbf [1],_dbf [2],_dbf [3],_dbf [4],_dbf [5]);
|
|
_da .Log .Debug ("\u0047\u0072\u0061\u0070\u0068\u0069\u0063\u0073\u0020\u0073\u0074a\u0074\u0065\u0020\u006d\u0061\u0074\u0072\u0069\u0078\u003a \u0025\u002b\u0076",_gbg );_ae .SetMatrix (_ae .Matrix ().Mult (_gbg ));case "\u0077":if len (_cadd .Params )!=1{return _affa ;
|
|
};_ebc ,_bec :=_ee .GetNumbersAsFloat (_cadd .Params );if _bec !=nil {return _bec ;};_ae .SetLineWidth (_ebc [0]);case "\u004a":if len (_cadd .Params )!=1{return _affa ;};_deg ,_ffe :=_ee .GetIntVal (_cadd .Params [0]);if !_ffe {return _eg ;};switch _deg {case 0:_ae .SetLineCap (_dbg .LineCapButt );
|
|
case 1:_ae .SetLineCap (_dbg .LineCapRound );case 2:_ae .SetLineCap (_dbg .LineCapSquare );default:_da .Log .Debug ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006c\u0069\u006ee\u0020\u0063\u0061\u0070\u0020\u0073\u0074\u0079\u006c\u0065:\u0020\u0025\u0064",_deg );
|
|
return _affa ;};case "\u006a":if len (_cadd .Params )!=1{return _affa ;};_cba ,_fcf :=_ee .GetIntVal (_cadd .Params [0]);if !_fcf {return _eg ;};switch _cba {case 0:_ae .SetLineJoin (_dbg .LineJoinBevel );case 1:_ae .SetLineJoin (_dbg .LineJoinRound );
|
|
case 2:_ae .SetLineJoin (_dbg .LineJoinBevel );default:_da .Log .Debug ("I\u006e\u0076\u0061\u006c\u0069\u0064 \u006c\u0069\u006e\u0065\u0020\u006a\u006f\u0069\u006e \u0073\u0074\u0079l\u0065:\u0020\u0025\u0064",_cba );return _affa ;};case "\u004d":if len (_cadd .Params )!=1{return _affa ;
|
|
};_ab ,_gee :=_ee .GetNumbersAsFloat (_cadd .Params );if _gee !=nil {return _gee ;};_ =_ab ;_da .Log .Debug ("\u004di\u0074\u0065\u0072\u0020l\u0069\u006d\u0069\u0074\u0020n\u006ft\u0020s\u0075\u0070\u0070\u006f\u0072\u0074\u0065d");case "\u0064":if len (_cadd .Params )!=2{return _affa ;
|
|
};_ebf ,_ce :=_ee .GetArray (_cadd .Params [0]);if !_ce {return _eg ;};_gba ,_ce :=_ee .GetIntVal (_cadd .Params [1]);if !_ce {return _eg ;};_gbc ,_ecb :=_ee .GetNumbersAsFloat (_ebf .Elements ());if _ecb !=nil {return _ecb ;};_ae .SetDash (_gbc ...);_ =_gba ;
|
|
_da .Log .Debug ("\u004c\u0069n\u0065\u0020\u0064\u0061\u0073\u0068\u0020\u0070\u0068\u0061\u0073\u0065\u0020\u006e\u006f\u0074\u0020\u0073\u0075\u0070\u0070\u006frt\u0065\u0064");case "\u0072\u0069":_da .Log .Debug ("\u0052\u0065\u006e\u0064\u0065\u0072\u0069\u006e\u0067\u0020i\u006e\u0074\u0065\u006e\u0074\u0020\u006eo\u0074\u0020\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064");
|
|
case "\u0069":_da .Log .Debug ("\u0046\u006c\u0061\u0074\u006e\u0065\u0073\u0073\u0020\u0074\u006f\u006c\u0065\u0072\u0061n\u0063e\u0020\u006e\u006f\u0074\u0020\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064");case "\u0067\u0073":if len (_cadd .Params )!=1{return _affa ;
|
|
};_dfb ,_bcd :=_ee .GetName (_cadd .Params [0]);if !_bcd {return _eg ;};if _dfb ==nil {return _affa ;};_fcfd ,_bcd :=_bed .GetExtGState (*_dfb );if !_bcd {_da .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020\u006eo\u0074 \u0066i\u006ed\u0020\u0072\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u003a\u0020\u0025\u0073",*_dfb );
|
|
return _e .New ("\u0072e\u0073o\u0075\u0072\u0063\u0065\u0020n\u006f\u0074 \u0066\u006f\u0075\u006e\u0064");};_dca ,_bcd :=_ee .GetDict (_fcfd );if !_bcd {_da .Log .Debug ("\u0045\u0052RO\u0052\u003a\u0020c\u006f\u0075\u006c\u0064 ge\u0074 g\u0072\u0061\u0070\u0068\u0069\u0063\u0073 s\u0074\u0061\u0074\u0065\u0020\u0064\u0069c\u0074");
|
|
return _eg ;};_da .Log .Debug ("G\u0053\u0020\u0064\u0069\u0063\u0074\u003a\u0020\u0025\u0073",_dca .String ());case "\u006d":if len (_cadd .Params )!=2{_da .Log .Debug ("\u0057\u0041\u0052\u004e\u003a\u0020\u0065\u0072\u0072o\u0072\u0020\u0077\u0068\u0069\u006c\u0065\u0020\u0070\u0072\u006f\u0063\u0065\u0073\u0073\u0069\u006e\u0067\u0020\u0060\u006d\u0060\u0020o\u0070\u0065r\u0061\u0074o\u0072\u003a\u0020\u0025\u0073\u002e\u0020\u004f\u0075\u0074\u0070\u0075\u0074 m\u0061\u0079\u0020\u0062\u0065\u0020\u0069\u006e\u0063o\u0072\u0072\u0065\u0063\u0074\u002e",_affa );
|
|
return nil ;};_ced ,_gdg :=_ee .GetNumbersAsFloat (_cadd .Params );if _gdg !=nil {return _gdg ;};_da .Log .Debug ("M\u006f\u0076\u0065\u0020\u0074\u006f\u003a\u0020\u0025\u0076",_ced );_ae .NewSubPath ();_ae .MoveTo (_ced [0],_ced [1]);case "\u006c":if len (_cadd .Params )!=2{_da .Log .Debug ("\u0057\u0041\u0052\u004e\u003a\u0020\u0065\u0072\u0072o\u0072\u0020\u0077\u0068\u0069\u006c\u0065\u0020\u0070\u0072\u006f\u0063\u0065\u0073\u0073\u0069\u006e\u0067\u0020\u0060\u006c\u0060\u0020o\u0070\u0065r\u0061\u0074o\u0072\u003a\u0020\u0025\u0073\u002e\u0020\u004f\u0075\u0074\u0070\u0075\u0074 m\u0061\u0079\u0020\u0062\u0065\u0020\u0069\u006e\u0063o\u0072\u0072\u0065\u0063\u0074\u002e",_affa );
|
|
return nil ;};_eab ,_gbb :=_ee .GetNumbersAsFloat (_cadd .Params );if _gbb !=nil {return _gbb ;};_ae .LineTo (_eab [0],_eab [1]);case "\u0063":if len (_cadd .Params )!=6{return _affa ;};_gf ,_gda :=_ee .GetNumbersAsFloat (_cadd .Params );if _gda !=nil {return _gda ;
|
|
};_da .Log .Debug ("\u0043u\u0062\u0069\u0063\u0020\u0062\u0065\u007a\u0069\u0065\u0072\u0020p\u0061\u0072\u0061\u006d\u0073\u003a\u0020\u0025\u002b\u0076",_gf );_ae .CubicTo (_gf [0],_gf [1],_gf [2],_gf [3],_gf [4],_gf [5]);case "\u0076","\u0079":if len (_cadd .Params )!=4{return _affa ;
|
|
};_dcc ,_bf :=_ee .GetNumbersAsFloat (_cadd .Params );if _bf !=nil {return _bf ;};_da .Log .Debug ("\u0043u\u0062\u0069\u0063\u0020\u0062\u0065\u007a\u0069\u0065\u0072\u0020p\u0061\u0072\u0061\u006d\u0073\u003a\u0020\u0025\u002b\u0076",_dcc );_ae .QuadraticTo (_dcc [0],_dcc [1],_dcc [2],_dcc [3]);
|
|
case "\u0068":_ae .ClosePath ();_ae .NewSubPath ();case "\u0072\u0065":if len (_cadd .Params )!=4{return _affa ;};_afe ,_fge :=_ee .GetNumbersAsFloat (_cadd .Params );if _fge !=nil {return _fge ;};_ae .DrawRectangle (_afe [0],_afe [1],_afe [2],_afe [3]);
|
|
_ae .NewSubPath ();case "\u0053":_beb ,_bgb :=_bg .ColorspaceStroking .ColorToRGB (_bg .ColorStroking );if _bgb !=nil {_da .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_bgb );
|
|
return _bgb ;};_bccb ,_cee :=_beb .(*_gb .PdfColorDeviceRGB );if !_cee {_da .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _bgb ;};_ae .SetRGBA (_bccb .R (),_bccb .G (),_bccb .B (),1);
|
|
_ae .Stroke ();case "\u0073":_ebff ,_adg :=_bg .ColorspaceStroking .ColorToRGB (_bg .ColorStroking );if _adg !=nil {_da .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_adg );
|
|
return _adg ;};_fbec ,_dg :=_ebff .(*_gb .PdfColorDeviceRGB );if !_dg {_da .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _adg ;};_ae .ClosePath ();_ae .NewSubPath ();
|
|
_ae .SetRGBA (_fbec .R (),_fbec .G (),_fbec .B (),1);_ae .Stroke ();case "\u0066","\u0046":_aeg ,_gcfb :=_bg .ColorspaceNonStroking .ColorToRGB (_bg .ColorNonStroking );if _gcfb !=nil {_da .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_gcfb );
|
|
return _gcfb ;};_ebg ,_cgf :=_aeg .(*_gb .PdfColorDeviceRGB );if !_cgf {_da .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _gcfb ;};_ae .SetRGBA (_ebg .R (),_ebg .G (),_ebg .B (),1);
|
|
_ae .SetFillRule (_dbg .FillRuleWinding );_ae .Fill ();case "\u0066\u002a":_eca ,_bcf :=_bg .ColorspaceNonStroking .ColorToRGB (_bg .ColorNonStroking );if _bcf !=nil {_da .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_bcf );
|
|
return _bcf ;};_gag ,_cc :=_eca .(*_gb .PdfColorDeviceRGB );if !_cc {_da .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _bcf ;};_ae .SetRGBA (_gag .R (),_gag .G (),_gag .B (),1);
|
|
_ae .SetFillRule (_dbg .FillRuleEvenOdd );_ae .Fill ();case "\u0042":_gaa ,_cga :=_bg .ColorspaceNonStroking .ColorToRGB (_bg .ColorNonStroking );if _cga !=nil {_da .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_cga );
|
|
return _cga ;};_fegg :=_gaa .(*_gb .PdfColorDeviceRGB );_ae .SetRGBA (_fegg .R (),_fegg .G (),_fegg .B (),1);_ae .SetFillRule (_dbg .FillRuleWinding );_ae .FillPreserve ();_gaa ,_cga =_bg .ColorspaceStroking .ColorToRGB (_bg .ColorStroking );if _cga !=nil {_da .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_cga );
|
|
return _cga ;};_fegg =_gaa .(*_gb .PdfColorDeviceRGB );_ae .SetRGBA (_fegg .R (),_fegg .G (),_fegg .B (),1);_ae .Stroke ();case "\u0042\u002a":_ac ,_gbgf :=_bg .ColorspaceNonStroking .ColorToRGB (_bg .ColorNonStroking );if _gbgf !=nil {_da .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_gbgf );
|
|
return _gbgf ;};_gg :=_ac .(*_gb .PdfColorDeviceRGB );_ae .SetRGBA (_gg .R (),_gg .G (),_gg .B (),1);_ae .SetFillRule (_dbg .FillRuleEvenOdd );_ae .FillPreserve ();_ac ,_gbgf =_bg .ColorspaceStroking .ColorToRGB (_bg .ColorStroking );if _gbgf !=nil {_da .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_gbgf );
|
|
return _gbgf ;};_gg =_ac .(*_gb .PdfColorDeviceRGB );_ae .SetRGBA (_gg .R (),_gg .G (),_gg .B (),1);_ae .Stroke ();case "\u0062":_adgf ,_cde :=_bg .ColorspaceNonStroking .ColorToRGB (_bg .ColorNonStroking );if _cde !=nil {_da .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_cde );
|
|
return _cde ;};_abf :=_adgf .(*_gb .PdfColorDeviceRGB );_ae .SetRGBA (_abf .R (),_abf .G (),_abf .B (),1);_ae .ClosePath ();_ae .NewSubPath ();_ae .SetFillRule (_dbg .FillRuleWinding );_ae .FillPreserve ();_adgf ,_cde =_bg .ColorspaceStroking .ColorToRGB (_bg .ColorStroking );
|
|
if _cde !=nil {_da .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_cde );return _cde ;};_abf =_adgf .(*_gb .PdfColorDeviceRGB );_ae .SetRGBA (_abf .R (),_abf .G (),_abf .B (),1);
|
|
_ae .Stroke ();case "\u0062\u002a":_ae .ClosePath ();_gge ,_ba :=_bg .ColorspaceNonStroking .ColorToRGB (_bg .ColorNonStroking );if _ba !=nil {_da .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_ba );
|
|
return _ba ;};_bfc :=_gge .(*_gb .PdfColorDeviceRGB );_ae .SetRGBA (_bfc .R (),_bfc .G (),_bfc .B (),1);_ae .NewSubPath ();_ae .SetFillRule (_dbg .FillRuleEvenOdd );_ae .FillPreserve ();_gge ,_ba =_bg .ColorspaceStroking .ColorToRGB (_bg .ColorStroking );
|
|
if _ba !=nil {_da .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_ba );return _ba ;};_bfc =_gge .(*_gb .PdfColorDeviceRGB );_ae .SetRGBA (_bfc .R (),_bfc .G (),_bfc .B (),1);
|
|
_ae .Stroke ();case "\u006e":_ae .ClearPath ();case "\u0057":_ae .SetFillRule (_dbg .FillRuleWinding );_ae .ClipPreserve ();case "\u0057\u002a":_ae .SetFillRule (_dbg .FillRuleEvenOdd );_ae .ClipPreserve ();case "\u0072\u0067":_abc ,_aea :=_bg .ColorNonStroking .(*_gb .PdfColorDeviceRGB );
|
|
if !_aea {_da .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_bg .ColorNonStroking );return nil ;};_ae .SetFillRGBA (_abc .R (),_abc .G (),_abc .B (),1);
|
|
case "\u0052\u0047":_fgf ,_bfb :=_bg .ColorStroking .(*_gb .PdfColorDeviceRGB );if !_bfb {_da .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_bg .ColorStroking );
|
|
return nil ;};_ae .SetStrokeRGBA (_fgf .R (),_fgf .G (),_fgf .B (),1);case "\u006b":_bge ,_gfe :=_bg .ColorNonStroking .(*_gb .PdfColorDeviceCMYK );if !_gfe {_da .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_bg .ColorNonStroking );
|
|
return nil ;};_aec ,_fgec :=_bg .ColorspaceNonStroking .ColorToRGB (_bge );if _fgec !=nil {_da .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_bg .ColorNonStroking );
|
|
return nil ;};_cbb ,_gfe :=_aec .(*_gb .PdfColorDeviceRGB );if !_gfe {_da .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_aec );return nil ;
|
|
};_ae .SetFillRGBA (_cbb .R (),_cbb .G (),_cbb .B (),1);case "\u004b":_egb ,_ffg :=_bg .ColorStroking .(*_gb .PdfColorDeviceCMYK );if !_ffg {_da .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_bg .ColorStroking );
|
|
return nil ;};_ebcd ,_fff :=_bg .ColorspaceStroking .ColorToRGB (_egb );if _fff !=nil {_da .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_bg .ColorStroking );
|
|
return nil ;};_fec ,_ffg :=_ebcd .(*_gb .PdfColorDeviceRGB );if !_ffg {_da .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_ebcd );return nil ;
|
|
};_ae .SetStrokeRGBA (_fec .R (),_fec .G (),_fec .B (),1);case "\u0067":_cea ,_gff :=_bg .ColorNonStroking .(*_gb .PdfColorDeviceGray );if !_gff {_da .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_bg .ColorNonStroking );
|
|
return nil ;};_cadf ,_caf :=_bg .ColorspaceNonStroking .ColorToRGB (_cea );if _caf !=nil {_da .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_bg .ColorNonStroking );
|
|
return nil ;};_dbb ,_gff :=_cadf .(*_gb .PdfColorDeviceRGB );if !_gff {_da .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_cadf );return nil ;
|
|
};_ae .SetFillRGBA (_dbb .R (),_dbb .G (),_dbb .B (),1);case "\u0047":_bd ,_cda :=_bg .ColorStroking .(*_gb .PdfColorDeviceGray );if !_cda {_da .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_bg .ColorStroking );
|
|
return nil ;};_bgg ,_dcad :=_bg .ColorspaceStroking .ColorToRGB (_bd );if _dcad !=nil {_da .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_bg .ColorStroking );
|
|
return nil ;};_dgf ,_cda :=_bgg .(*_gb .PdfColorDeviceRGB );if !_cda {_da .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_bgg );return nil ;
|
|
};_ae .SetStrokeRGBA (_dgf .R (),_dgf .G (),_dgf .B (),1);case "\u0063\u0073","\u0073\u0063","\u0073\u0063\u006e":_fgb ,_edf :=_bg .ColorspaceNonStroking .ColorToRGB (_bg .ColorNonStroking );if _edf !=nil {_da .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_bg .ColorNonStroking );
|
|
return nil ;};_bcaa ,_becd :=_fgb .(*_gb .PdfColorDeviceRGB );if !_becd {_da .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_fgb );return nil ;
|
|
};_ae .SetFillRGBA (_bcaa .R (),_bcaa .G (),_bcaa .B (),1);case "\u0043\u0053","\u0053\u0043","\u0053\u0043\u004e":_beg ,_gecg :=_bg .ColorspaceStroking .ColorToRGB (_bg .ColorStroking );if _gecg !=nil {_da .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_bg .ColorStroking );
|
|
return nil ;};_dag ,_abd :=_beg .(*_gb .PdfColorDeviceRGB );if !_abd {_da .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_beg );return nil ;
|
|
};_ae .SetStrokeRGBA (_dag .R (),_dag .G (),_dag .B (),1);case "\u0044\u006f":if len (_cadd .Params )!=1{return _affa ;};_ffff ,_fce :=_ee .GetName (_cadd .Params [0]);if !_fce {return _eg ;};_ ,_gfg :=_bed .GetXObjectByName (*_ffff );switch _gfg {case _gb .XObjectTypeImage :_da .Log .Debug ("\u0058\u004f\u0062\u006a\u0065\u0063\u0074\u0020\u0069\u006d\u0061\u0067e\u003a\u0020\u0025\u0073",_ffff .String ());
|
|
_ceb ,_fecc :=_bed .GetXObjectImageByName (*_ffff );if _fecc !=nil {return _fecc ;};_cag ,_fecc :=_ceb .ToImage ();if _fecc !=nil {return _fecc ;};if _cgab :=_ceb .ColorSpace ;_cgab !=nil {var _ebb bool ;switch _cgab .(type ){case *_gb .PdfColorspaceSpecialIndexed :_ebb =true ;
|
|
};if _ebb {if _dfff ,_edd :=_cgab .ImageToRGB (*_cag );_edd !=nil {_da .Log .Debug ("\u0057\u0041\u0052\u004e\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020\u0063\u006fnv\u0065r\u0074\u0020\u0069\u006d\u0061\u0067\u0065\u0020\u0074\u006f\u0020\u0052G\u0042\u002e\u0020\u004f\u0075\u0074\u0070\u0075\u0074\u0020\u006d\u0061\u0079\u0020\u0062\u0065\u0020i\u006e\u0063\u006f\u0072\u0072\u0065\u0063\u0074\u002e");
|
|
}else {_cag =&_dfff ;};};};_fdf :=_ae .FillPattern ().ColorAt (0,0);var _abfc _db .Image ;if _ceb .Mask !=nil {if _abfc ,_fecc =_cbfb (_ceb .Mask ,_fdf );_fecc !=nil {_da .Log .Debug ("\u0057\u0041\u0052\u004e\u003a \u0063\u006f\u0075\u006c\u0064 \u006eo\u0074\u0020\u0067\u0065\u0074\u0020\u0065\u0078\u0070\u006c\u0069\u0063\u0069\u0074\u0020\u0069\u006d\u0061\u0067e\u0020\u006d\u0061\u0073\u006b\u002e\u0020\u004f\u0075\u0074\u0070\u0075\u0074\u0020\u006d\u0061\u0079\u0020\u0062\u0065\u0020\u0069\u006e\u0063o\u0072\u0072\u0065\u0063\u0074\u002e");
|
|
};};var _fffg _db .Image ;if _dee ,_ :=_ee .GetBoolVal (_ceb .ImageMask );_dee {_fffg =_edc (_cag ,_fdf );}else {_fffg ,_fecc =_cag .ToGoImage ();if _fecc !=nil {return _fecc ;};};if _abfc !=nil {_fffg =_cgb (_fffg ,_abfc );};_cbbc :=_fffg .Bounds ();_ae .Push ();
|
|
_ae .Scale (1.0/float64 (_cbbc .Dx ()),-1.0/float64 (_cbbc .Dy ()));_ae .DrawImageAnchored (_fffg ,0,0,0,1);_ae .Pop ();case _gb .XObjectTypeForm :_da .Log .Debug ("\u0058\u004fb\u006a\u0065\u0063t\u0020\u0066\u006f\u0072\u006d\u003a\u0020\u0025\u0073",_ffff .String ());
|
|
_bgf ,_gfeg :=_bed .GetXObjectFormByName (*_ffff );if _gfeg !=nil {return _gfeg ;};_cbbd ,_gfeg :=_bgf .GetContentStream ();if _gfeg !=nil {return _gfeg ;};_gegg :=_bgf .Resources ;if _gegg ==nil {_gegg =_bed ;};_ae .Push ();if _bgf .Matrix !=nil {_bae ,_bebg :=_ee .GetArray (_bgf .Matrix );
|
|
if !_bebg {return _eg ;};_caa ,_gagf :=_ee .GetNumbersAsFloat (_bae .Elements ());if _gagf !=nil {return _gagf ;};if len (_caa )!=6{return _affa ;};_deb :=_fc .NewMatrix (_caa [0],_caa [1],_caa [2],_caa [3],_caa [4],_caa [5]);_ae .SetMatrix (_ae .Matrix ().Mult (_deb ));
|
|
};if _bgf .BBox !=nil {_gbd ,_gac :=_ee .GetArray (_bgf .BBox );if !_gac {return _eg ;};_cge ,_cdag :=_ee .GetNumbersAsFloat (_gbd .Elements ());if _cdag !=nil {return _cdag ;};if len (_cge )!=4{_da .Log .Debug ("\u004c\u0065\u006e\u0020\u003d\u0020\u0025\u0064",len (_cge ));
|
|
return _affa ;};_ae .DrawRectangle (_cge [0],_cge [1],_cge [2]-_cge [0],_cge [3]-_cge [1]);_ae .SetRGBA (1,0,0,1);_ae .Clip ();}else {_da .Log .Debug ("\u0045R\u0052\u004fR\u003a\u0020\u0052\u0065q\u0075\u0069\u0072e\u0064\u0020\u0042\u0042\u006f\u0078\u0020\u006d\u0069ss\u0069\u006e\u0067 \u006f\u006e \u0058\u004f\u0062\u006a\u0065\u0063t\u0020\u0046o\u0072\u006d");
|
|
};_gfeg =_dff .renderContentStream (_ae ,string (_cbbd ),_gegg );if _gfeg !=nil {return _gfeg ;};_ae .Pop ();};case "\u0042\u0049":if len (_cadd .Params )!=1{return _affa ;};_ddc ,_cgd :=_cadd .Params [0].(*_ed .ContentStreamInlineImage );if !_cgd {return nil ;
|
|
};_gcb ,_fef :=_ddc .ToImage (_bed );if _fef !=nil {return _fef ;};_fdb ,_fef :=_gcb .ToGoImage ();if _fef !=nil {return _fef ;};_cf :=_fdb .Bounds ();_ae .Push ();_ae .Scale (1.0/float64 (_cf .Dx ()),-1.0/float64 (_cf .Dy ()));_ae .DrawImageAnchored (_fdb ,0,0,0,1);
|
|
_ae .Pop ();case "\u0042\u0054":_fee .Reset ();case "\u0045\u0054":_fee .Reset ();case "\u0054\u0072":if len (_cadd .Params )!=1{return _affa ;};_feb ,_bedb :=_ee .GetNumberAsFloat (_cadd .Params [0]);if _bedb !=nil {return _bedb ;};_fee .Tr =_dbg .TextRenderingMode (_feb );
|
|
case "\u0054\u004c":if len (_cadd .Params )!=1{return _affa ;};_cdg ,_deed :=_ee .GetNumberAsFloat (_cadd .Params [0]);if _deed !=nil {return _deed ;};_fee .Tl =_cdg ;case "\u0054\u0063":if len (_cadd .Params )!=1{return _affa ;};_aa ,_ffee :=_ee .GetNumberAsFloat (_cadd .Params [0]);
|
|
if _ffee !=nil {return _ffee ;};_da .Log .Debug ("\u0054\u0063\u003a\u0020\u0025\u0076",_aa );_fee .Tc =_aa ;case "\u0054\u0077":if len (_cadd .Params )!=1{return _affa ;};_fgecc ,_ccb :=_ee .GetNumberAsFloat (_cadd .Params [0]);if _ccb !=nil {return _ccb ;
|
|
};_da .Log .Debug ("\u0054\u0077\u003a\u0020\u0025\u0076",_fgecc );_fee .Tw =_fgecc ;case "\u0054\u007a":if len (_cadd .Params )!=1{return _affa ;};_agg ,_bgd :=_ee .GetNumberAsFloat (_cadd .Params [0]);if _bgd !=nil {return _bgd ;};_fee .Th =_agg ;case "\u0054\u0073":if len (_cadd .Params )!=1{return _affa ;
|
|
};_ebd ,_bgeb :=_ee .GetNumberAsFloat (_cadd .Params [0]);if _bgeb !=nil {return _bgeb ;};_fee .Ts =_ebd ;case "\u0054\u0064":if len (_cadd .Params )!=2{return _affa ;};_eff ,_dffff :=_ee .GetNumbersAsFloat (_cadd .Params );if _dffff !=nil {return _dffff ;
|
|
};_da .Log .Debug ("\u0054\u0064\u003a\u0020\u0025\u0076",_eff );_fee .ProcTd (_eff [0],_eff [1]);case "\u0054\u0044":if len (_cadd .Params )!=2{return _affa ;};_bfe ,_cfa :=_ee .GetNumbersAsFloat (_cadd .Params );if _cfa !=nil {return _cfa ;};_da .Log .Debug ("\u0054\u0044\u003a\u0020\u0025\u0076",_bfe );
|
|
_fee .ProcTD (_bfe [0],_bfe [1]);case "\u0054\u002a":_fee .ProcTStar ();case "\u0054\u006d":if len (_cadd .Params )!=6{return _affa ;};_cbg ,_dde :=_ee .GetNumbersAsFloat (_cadd .Params );if _dde !=nil {return _dde ;};_da .Log .Debug ("\u0054\u0065x\u0074\u0020\u006da\u0074\u0072\u0069\u0078\u003a\u0020\u0025\u002b\u0076",_cbg );
|
|
_fee .ProcTm (_cbg [0],_cbg [1],_cbg [2],_cbg [3],_cbg [4],_cbg [5]);case "\u0027":if len (_cadd .Params )!=1{return _affa ;};_ffb ,_bag :=_ee .GetStringBytes (_cadd .Params [0]);if !_bag {return _eg ;};_da .Log .Debug ("\u0027\u0020\u0073t\u0072\u0069\u006e\u0067\u003a\u0020\u0025\u0073",string (_ffb ));
|
|
_fee .ProcQ (_ffb ,_ae );case "\u0022":if len (_cadd .Params )!=3{return _affa ;};_abe ,_gcea :=_ee .GetNumberAsFloat (_cadd .Params [0]);if _gcea !=nil {return _gcea ;};_cbf ,_gcea :=_ee .GetNumberAsFloat (_cadd .Params [1]);if _gcea !=nil {return _gcea ;
|
|
};_dge ,_fdc :=_ee .GetStringBytes (_cadd .Params [2]);if !_fdc {return _eg ;};_fee .ProcDQ (_dge ,_abe ,_cbf ,_ae );case "\u0054\u006a":if len (_cadd .Params )!=1{return _affa ;};_bgc ,_bga :=_ee .GetStringBytes (_cadd .Params [0]);if !_bga {return _eg ;
|
|
};_da .Log .Debug ("\u0054j\u0020s\u0074\u0072\u0069\u006e\u0067\u003a\u0020\u0060\u0025\u0073\u0060",string (_bgc ));_fee .ProcTj (_bgc ,_ae );case "\u0054\u004a":if len (_cadd .Params )!=1{return _affa ;};_cbgc ,_eef :=_ee .GetArray (_cadd .Params [0]);
|
|
if !_eef {_da .Log .Debug ("\u0054\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_cbgc );return _eg ;};_da .Log .Debug ("\u0054\u004a\u0020\u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u002b\u0076",_cbgc );for _ ,_edb :=range _cbgc .Elements (){switch _adc :=_edb .(type ){case *_ee .PdfObjectString :if _adc !=nil {_fee .ProcTj (_adc .Bytes (),_ae );
|
|
};case *_ee .PdfObjectFloat ,*_ee .PdfObjectInteger :_bgbb ,_fffa :=_ee .GetNumberAsFloat (_adc );if _fffa ==nil {_fee .Translate (-_bgbb *0.001*_fee .Tf .Size *_fee .Th /100.0,0);};};};case "\u0054\u0066":if len (_cadd .Params )!=2{return _affa ;};_da .Log .Debug ("\u0025\u0023\u0076",_cadd .Params );
|
|
_afa ,_gbf :=_ee .GetName (_cadd .Params [0]);if !_gbf ||_afa ==nil {_da .Log .Debug ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u006e\u0061m\u0065 \u006f\u0062\u006a\u0065\u0063\u0074\u003a \u0025\u0076",_cadd .Params [0]);
|
|
return _eg ;};_da .Log .Debug ("\u0046\u006f\u006e\u0074\u0020\u006e\u0061\u006d\u0065\u003a\u0020\u0025\u0073",_afa .String ());_efc ,_gcbd :=_ee .GetNumberAsFloat (_cadd .Params [1]);if _gcbd !=nil {_da .Log .Debug ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u0073\u0069z\u0065 \u006f\u0062\u006a\u0065\u0063\u0074\u003a \u0025\u0076",_cadd .Params [1]);
|
|
return _eg ;};_da .Log .Debug ("\u0046\u006f\u006e\u0074\u0020\u0073\u0069\u007a\u0065\u003a\u0020\u0025\u0076",_efc );_ffef ,_cafg :=_bed .GetFontByName (*_afa );if !_cafg {_da .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0046\u006f\u006e\u0074\u0020\u0025s\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064",_afa .String ());
|
|
return _e .New ("\u0066\u006f\u006e\u0074\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};_da .Log .Debug ("\u0046\u006f\u006e\u0074\u003a\u0020\u0025\u0054",_ffef );_fdbc ,_gbf :=_ee .GetDict (_ffef );if !_gbf {_da .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0063\u006f\u0075l\u0064\u0020\u006e\u006f\u0074\u0020\u0067e\u0074\u0020\u0066\u006f\u006e\u0074\u0020\u0064\u0069\u0063\u0074");
|
|
return _eg ;};_fdac ,_gcbd :=_gb .NewPdfFontFromPdfObject (_fdbc );if _gcbd !=nil {_da .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020\u006c\u006f\u0061\u0064\u0020\u0066\u006fn\u0074\u0020\u0066\u0072\u006fm\u0020\u006fb\u006a\u0065\u0063\u0074");
|
|
return _gcbd ;};_defc :=_fdac .BaseFont ();if _defc ==""{_defc =_afa .String ();};_dcadd ,_gbf :=_dbe [_defc ];if !_gbf {_dcadd ,_gcbd =_dbg .NewTextFont (_fdac ,_efc );if _gcbd !=nil {_da .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gcbd );
|
|
};};if _dcadd ==nil {if len (_defc )> 7&&_defc [6]=='+'{_defc =_defc [7:];};_dfe :=[]string {_defc ,"\u0054i\u006de\u0073\u0020\u004e\u0065\u0077\u0020\u0052\u006f\u006d\u0061\u006e","\u0041\u0072\u0069a\u006c","D\u0065\u006a\u0061\u0056\u0075\u0020\u0053\u0061\u006e\u0073"};
|
|
for _ ,_eed :=range _dfe {_da .Log .Debug ("\u0044\u0045\u0042\u0055\u0047\u003a \u0073\u0065\u0061\u0072\u0063\u0068\u0069\u006e\u0067\u0020\u0073\u0079\u0073t\u0065\u006d\u0020\u0066\u006f\u006e\u0074 \u0060\u0025\u0073\u0060",_eed );if _dcadd ,_gbf =_dbe [_eed ];
|
|
_gbf {break ;};_bged :=_ec .Match (_eed );if _bged ==nil {_da .Log .Debug ("c\u006f\u0075\u006c\u0064\u0020\u006eo\u0074\u0020\u0066\u0069\u006e\u0064\u0020\u0066\u006fn\u0074\u0020\u0066i\u006ce\u0020\u0025\u0073",_eed );continue ;};_dcadd ,_gcbd =_dbg .NewTextFontFromPath (_bged .Filename ,_efc );
|
|
if _gcbd !=nil {_da .Log .Debug ("c\u006f\u0075\u006c\u0064\u0020\u006eo\u0074\u0020\u006c\u006f\u0061\u0064\u0020\u0066\u006fn\u0074\u0020\u0066i\u006ce\u0020\u0025\u0073",_bged .Filename );continue ;};_da .Log .Debug ("\u0053\u0075\u0062\u0073\u0074\u0069t\u0075\u0074\u0069\u006e\u0067\u0020\u0066\u006f\u006e\u0074\u0020\u0025\u0073 \u0077\u0069\u0074\u0068\u0020\u0025\u0073 \u0028\u0025\u0073\u0029",_defc ,_bged .Name ,_bged .Filename );
|
|
_dbe [_eed ]=_dcadd ;break ;};};if _dcadd ==nil {_da .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020n\u006f\u0074\u0020\u0066\u0069\u006ed\u0020\u0061\u006e\u0079\u0020\u0073\u0075\u0069\u0074\u0061\u0062\u006c\u0065 \u0066\u006f\u006e\u0074");
|
|
return _e .New ("\u0063\u006f\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020\u0066\u0069\u006e\u0064\u0020a\u006ey\u0020\u0073\u0075\u0069\u0074\u0061\u0062\u006c\u0065\u0020\u0066\u006f\u006e\u0074");};_fee .ProcTf (_dcadd .WithSize (_efc ,_fdac ));case "\u0042\u004d\u0043","\u0042\u0044\u0043":case "\u0045\u004d\u0043":default:_da .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0075\u006e\u0073u\u0070\u0070\u006f\u0072\u0074\u0065\u0064 \u006f\u0070\u0065\u0072\u0061\u006e\u0064\u003a\u0020\u0025\u0073",_cadd .Operand );
|
|
};return nil ;});_ga =_gceg .Process (_bb );if _ga !=nil {return _ga ;};return nil ;};
|
|
|
|
// NewImageDevice returns a new image device.
|
|
func NewImageDevice ()*ImageDevice {const _b ="r\u0065\u006e\u0064\u0065r.\u004ee\u0077\u0049\u006d\u0061\u0067e\u0044\u0065\u0076\u0069\u0063\u0065";_afg .TrackUse (_b );return &ImageDevice {};};
|
|
|
|
// ImageDevice is used to render PDF pages to image targets.
|
|
type ImageDevice struct{renderer ;
|
|
|
|
// OutputWidth represents the width of the rendered images in pixels.
|
|
// The heights of the output images are calculated based on the selected
|
|
// width and the original height of each rendered page.
|
|
OutputWidth int ;};var (_eg =_e .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");_affa =_e .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072"););func (_cb renderer )renderPage (_gcf _dbg .Context ,_df *_gb .PdfPage ,_feg _fc .Matrix )error {_fda ,_geg :=_df .GetAllContentStreams ();
|
|
if _geg !=nil {return _geg ;};if _afgd :=_feg ;!_afgd .Identity (){_fda =_af .Sprintf ("%\u002e\u0032\u0066\u0020\u0025\u002e2\u0066\u0020\u0025\u002e\u0032\u0066 \u0025\u002e\u0032\u0066\u0020\u0025\u002e2\u0066\u0020\u0025\u002e\u0032\u0066\u0020\u0063\u006d\u0020%\u0073",_afgd [0],_afgd [1],_afgd [3],_afgd [4],_afgd [6],_afgd [7],_fda );
|
|
};_gcf .Translate (0,float64 (_gcf .Height ()));_gcf .Scale (1,-1);_gcf .Push ();_gcf .SetRGBA (1,1,1,1);_gcf .DrawRectangle (0,0,float64 (_gcf .Width ()),float64 (_gcf .Height ()));_gcf .Fill ();_gcf .Pop ();_gcf .SetLineWidth (1.0);_gcf .SetRGBA (0,0,0,1);
|
|
return _cb .renderContentStream (_gcf ,_fda ,_df .Resources );}; |