mirror of
https://github.com/unidoc/unipdf.git
synced 2025-04-26 13:48:55 +08:00
145 lines
37 KiB
Go
145 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 (_a "errors";_ed "fmt";_fe "github.com/adrg/sysfont";_ea "github.com/unidoc/unipdf/v3/common";_ac "github.com/unidoc/unipdf/v3/contentstream";_db "github.com/unidoc/unipdf/v3/contentstream/draw";_gg "github.com/unidoc/unipdf/v3/core";
|
|
_c "github.com/unidoc/unipdf/v3/internal/license";_fd "github.com/unidoc/unipdf/v3/internal/transform";_ae "github.com/unidoc/unipdf/v3/model";_dg "github.com/unidoc/unipdf/v3/render/internal/context";_de "github.com/unidoc/unipdf/v3/render/internal/context/imagerender";
|
|
_ge "golang.org/x/image/draw";_gf "image";_gdg "image/color";_d "image/draw";_ga "image/jpeg";_gd "image/png";_fc "math";_e "os";_f "path/filepath";_ag "strings";);func _bfa (_debg string ,_bdag _gf .Image ,_afe int )error {_dfgb ,_debga :=_e .Create (_debg );
|
|
if _debga !=nil {return _debga ;};defer _dfgb .Close ();return _ga .Encode (_dfgb ,_bdag ,&_ga .Options {Quality :_afe });};var (_dbf =_a .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");_geeg =_a .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");
|
|
);func _gfef (_cgdc ,_faef ,_cfcc float64 )_db .BoundingBox {return _db .Path {Points :[]_db .Point {_db .NewPoint (0,0).Rotate (_cfcc ),_db .NewPoint (_cgdc ,0).Rotate (_cfcc ),_db .NewPoint (0,_faef ).Rotate (_cfcc ),_db .NewPoint (_cgdc ,_faef ).Rotate (_cfcc )}}.GetBoundingBox ();
|
|
};func _afg (_egaf ,_ddab _gf .Image )_gf .Image {_ccde ,_aaa :=_ddab .Bounds ().Size (),_egaf .Bounds ().Size ();_cdf ,_cafc :=_ccde .X ,_ccde .Y ;if _aaa .X > _cdf {_cdf =_aaa .X ;};if _aaa .Y > _cafc {_cafc =_aaa .Y ;};_aaag :=_gf .Rect (0,0,_cdf ,_cafc );
|
|
if _ccde .X !=_cdf ||_ccde .Y !=_cafc {_abf :=_gf .NewRGBA (_aaag );_ge .BiLinear .Scale (_abf ,_aaag ,_egaf ,_ddab .Bounds (),_ge .Over ,nil );_ddab =_abf ;};if _aaa .X !=_cdf ||_aaa .Y !=_cafc {_eage :=_gf .NewRGBA (_aaag );_ge .BiLinear .Scale (_eage ,_aaag ,_egaf ,_egaf .Bounds (),_ge .Over ,nil );
|
|
_egaf =_eage ;};_bcf :=_gf .NewRGBA (_aaag );_ge .DrawMask (_bcf ,_aaag ,_egaf ,_gf .Point {},_ddab ,_gf .Point {},_ge .Over );return _bcf ;};func _gcc (_gab string ,_bbad _gf .Image )error {_gggg ,_fdcd :=_e .Create (_gab );if _fdcd !=nil {return _fdcd ;
|
|
};defer _gggg .Close ();return _gd .Encode (_gggg ,_bbad );};
|
|
|
|
// RenderToPath converts the specified PDF page into an image and saves the
|
|
// result at the specified location.
|
|
func (_dbc *ImageDevice )RenderToPath (page *_ae .PdfPage ,outputPath string )error {_cb ,_gdfe :=_dbc .Render (page );if _gdfe !=nil {return _gdfe ;};_gfc :=_ag .ToLower (_f .Ext (outputPath ));if _gfc ==""{return _a .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 _gfc {case "\u002e\u0070\u006e\u0067":return _gcc (outputPath ,_cb );case "\u002e\u006a\u0070\u0067","\u002e\u006a\u0070e\u0067":return _bfa (outputPath ,_cb ,100);};return _ed .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",_gfc );
|
|
};func _feb (_cac *_ae .Image ,_gaf _gdg .Color )_gf .Image {_fcfb ,_efg :=int (_cac .Width ),int (_cac .Height );_gdc :=_gf .NewRGBA (_gf .Rect (0,0,_fcfb ,_efg ));for _gcbb :=0;_gcbb < _efg ;_gcbb ++{for _aad :=0;_aad < _fcfb ;_aad ++{_bfad ,_abc :=_cac .ColorAt (_aad ,_gcbb );
|
|
if _abc !=nil {_ea .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",_aad ,_gcbb );
|
|
continue ;};_acacf ,_cffa ,_afa ,_ :=_bfad .RGBA ();var _acd _gdg .Color ;if _acacf +_cffa +_afa ==0{_acd =_gaf ;}else {_acd =_gdg .Transparent ;};_gdc .Set (_aad ,_gcbb ,_acd );};};return _gdc ;};
|
|
|
|
// 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 ;};func _fcae (_eedc _gg .PdfObject ,_bcad _gdg .Color )(_gf .Image ,error ){_eaa ,_eacb :=_gg .GetStream (_eedc );if !_eacb {return nil ,nil ;};_bge ,_ffe :=_ae .NewXObjectImageFromStream (_eaa );if _ffe !=nil {return nil ,_ffe ;};_fbb ,_ffe :=_bge .ToImage ();
|
|
if _ffe !=nil {return nil ,_ffe ;};return _feb (_fbb ,_bcad ),nil ;};
|
|
|
|
// Render converts the specified PDF page into an image and returns the result.
|
|
func (_b *ImageDevice )Render (page *_ae .PdfPage )(_gf .Image ,error ){_ggg ,_dc :=page .GetMediaBox ();if _dc !=nil {return nil ,_dc ;};_ggg .Normalize ();_cg :=page .CropBox ;var _gae ,_bd float64 ;if _cg !=nil {_cg .Normalize ();_gae ,_bd =_cg .Width (),_cg .Height ();
|
|
};_gff :=page .Rotate ;_ad ,_dd ,_gge ,_df :=_ggg .Llx ,_ggg .Lly ,_ggg .Width (),_ggg .Height ();_dfc :=_fd .IdentityMatrix ();if _gff !=nil &&*_gff %360!=0&&*_gff %90==0{_bf :=-float64 (*_gff );_ec :=_gfef (_gge ,_df ,_bf );_dfc =_dfc .Translate ((_ec .Width -_gge )/2+_gge /2,(_ec .Height -_df )/2+_df /2).Rotate (_bf *_fc .Pi /180).Translate (-_gge /2,-_df /2);
|
|
_gge ,_df =_ec .Width ,_ec .Height ;if _cg !=nil {_ecg :=_gfef (_gae ,_bd ,_bf );_gae ,_bd =_ecg .Width ,_ecg .Height ;};};if _ad !=0||_dd !=0{_dfc =_dfc .Translate (-_ad ,-_dd );};_b ._ce =1.0;if _b .OutputWidth !=0{_ff :=_gge ;if _cg !=nil {_ff =_gae ;
|
|
};_b ._ce =float64 (_b .OutputWidth )/_ff ;_gge ,_df ,_gae ,_bd =_gge *_b ._ce ,_df *_b ._ce ,_gae *_b ._ce ,_bd *_b ._ce ;_dfc =_fd .ScaleMatrix (_b ._ce ,_b ._ce ).Mult (_dfc );};_gee :=_de .NewContext (int (_gge ),int (_df ));if _cf :=_b .renderPage (_gee ,page ,_dfc );
|
|
_cf !=nil {return nil ,_cf ;};_aec :=_gee .Image ();if _cg !=nil {_fa ,_gdf :=(_cg .Llx -_ad )*_b ._ce ,(_cg .Lly -_dd )*_b ._ce ;_add :=_gf .Rect (0,0,int (_gae ),int (_bd ));_fae :=_gf .Pt (int (_fa ),int (_df -_gdf -_bd ));_ece :=_gf .NewRGBA (_add );
|
|
_d .Draw (_ece ,_add ,_aec ,_fae ,_d .Src );_aec =_ece ;};return _aec ,nil ;};type renderer struct{_ce float64 };func (_ade renderer )renderPage (_eag _dg .Context ,_dgg *_ae .PdfPage ,_ca _fd .Matrix )error {_cd ,_cfg :=_dgg .GetAllContentStreams ();if _cfg !=nil {return _cfg ;
|
|
};if _gc :=_ca ;!_gc .Identity (){_cd =_ed .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",_gc [0],_gc [1],_gc [3],_gc [4],_gc [6],_gc [7],_cd );
|
|
};_eag .Translate (0,float64 (_eag .Height ()));_eag .Scale (1,-1);_eag .Push ();_eag .SetRGBA (1,1,1,1);_eag .DrawRectangle (0,0,float64 (_eag .Width ()),float64 (_eag .Height ()));_eag .Fill ();_eag .Pop ();_eag .SetLineWidth (1.0);_eag .SetRGBA (0,0,0,1);
|
|
return _ade .renderContentStream (_eag ,_cd ,_dgg .Resources );};func (_cfd renderer )renderContentStream (_gfe _dg .Context ,_ffd string ,_fad *_ae .PdfPageResources )error {_cgg ,_cdc :=_ac .NewContentStreamParser (_ffd ).Parse ();if _cdc !=nil {return _cdc ;
|
|
};_dcb :=_gfe .TextState ();_dcb .GlobalScale =_cfd ._ce ;_ef :=map[string ]*_dg .TextFont {};_bg :=_fe .NewFinder (&_fe .FinderOpts {Extensions :[]string {"\u002e\u0074\u0074\u0066","\u002e\u0074\u0074\u0063"}});_gb :=_ac .NewContentStreamProcessor (*_cgg );
|
|
_gb .AddHandler (_ac .HandlerConditionEnumAllOperands ,"",func (_gcb *_ac .ContentStreamOperation ,_faf _ac .GraphicsState ,_cae *_ae .PdfPageResources )error {_ea .Log .Debug ("\u0050\u0072\u006f\u0063\u0065\u0073\u0073\u0069\u006e\u0067\u0020\u0025\u0073",_gcb .Operand );
|
|
switch _gcb .Operand {case "\u0071":_gfe .Push ();case "\u0051":_gfe .Pop ();_dcb =_gfe .TextState ();case "\u0063\u006d":if len (_gcb .Params )!=6{return _geeg ;};_gdgg ,_bb :=_gg .GetNumbersAsFloat (_gcb .Params );if _bb !=nil {return _bb ;};_ggb :=_fd .NewMatrix (_gdgg [0],_gdgg [1],_gdgg [2],_gdgg [3],_gdgg [4],_gdgg [5]);
|
|
_ea .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",_ggb );_gfe .SetMatrix (_gfe .Matrix ().Mult (_ggb ));case "\u0077":if len (_gcb .Params )!=1{return _geeg ;
|
|
};_fdc ,_ab :=_gg .GetNumbersAsFloat (_gcb .Params );if _ab !=nil {return _ab ;};_gfe .SetLineWidth (_fdc [0]);case "\u004a":if len (_gcb .Params )!=1{return _geeg ;};_cgd ,_aca :=_gg .GetIntVal (_gcb .Params [0]);if !_aca {return _dbf ;};switch _cgd {case 0:_gfe .SetLineCap (_dg .LineCapButt );
|
|
case 1:_gfe .SetLineCap (_dg .LineCapRound );case 2:_gfe .SetLineCap (_dg .LineCapSquare );default:_ea .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",_cgd );
|
|
return _geeg ;};case "\u006a":if len (_gcb .Params )!=1{return _geeg ;};_af ,_gac :=_gg .GetIntVal (_gcb .Params [0]);if !_gac {return _dbf ;};switch _af {case 0:_gfe .SetLineJoin (_dg .LineJoinBevel );case 1:_gfe .SetLineJoin (_dg .LineJoinRound );case 2:_gfe .SetLineJoin (_dg .LineJoinBevel );
|
|
default:_ea .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",_af );return _geeg ;};case "\u004d":if len (_gcb .Params )!=1{return _geeg ;};_cgf ,_be :=_gg .GetNumbersAsFloat (_gcb .Params );
|
|
if _be !=nil {return _be ;};_ =_cgf ;_ea .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 (_gcb .Params )!=2{return _geeg ;};_cbc ,_gdga :=_gg .GetArray (_gcb .Params [0]);
|
|
if !_gdga {return _dbf ;};_gef ,_gdga :=_gg .GetIntVal (_gcb .Params [1]);if !_gdga {return _dbf ;};_ecgd ,_dcf :=_gg .GetNumbersAsFloat (_cbc .Elements ());if _dcf !=nil {return _dcf ;};_gfe .SetDash (_ecgd ...);_ =_gef ;_ea .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":_ea .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":_ea .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 (_gcb .Params )!=1{return _geeg ;};_gbe ,_da :=_gg .GetName (_gcb .Params [0]);if !_da {return _dbf ;};if _gbe ==nil {return _geeg ;};_afd ,_da :=_cae .GetExtGState (*_gbe );if !_da {_ea .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",*_gbe );
|
|
return _a .New ("\u0072e\u0073o\u0075\u0072\u0063\u0065\u0020n\u006f\u0074 \u0066\u006f\u0075\u006e\u0064");};_fca ,_da :=_gg .GetDict (_afd );if !_da {_ea .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 _dbf ;};_ea .Log .Debug ("G\u0053\u0020\u0064\u0069\u0063\u0074\u003a\u0020\u0025\u0073",_fca .String ());case "\u006d":if len (_gcb .Params )!=2{_ea .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",_geeg );
|
|
return nil ;};_ecc ,_dfa :=_gg .GetNumbersAsFloat (_gcb .Params );if _dfa !=nil {return _dfa ;};_ea .Log .Debug ("M\u006f\u0076\u0065\u0020\u0074\u006f\u003a\u0020\u0025\u0076",_ecc );_gfe .NewSubPath ();_gfe .MoveTo (_ecc [0],_ecc [1]);case "\u006c":if len (_gcb .Params )!=2{_ea .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",_geeg );
|
|
return nil ;};_eff ,_gfce :=_gg .GetNumbersAsFloat (_gcb .Params );if _gfce !=nil {return _gfce ;};_gfe .LineTo (_eff [0],_eff [1]);case "\u0063":if len (_gcb .Params )!=6{return _geeg ;};_eca ,_abg :=_gg .GetNumbersAsFloat (_gcb .Params );if _abg !=nil {return _abg ;
|
|
};_ea .Log .Debug ("\u0043u\u0062\u0069\u0063\u0020\u0062\u0065\u007a\u0069\u0065\u0072\u0020p\u0061\u0072\u0061\u006d\u0073\u003a\u0020\u0025\u002b\u0076",_eca );_gfe .CubicTo (_eca [0],_eca [1],_eca [2],_eca [3],_eca [4],_eca [5]);case "\u0076","\u0079":if len (_gcb .Params )!=4{return _geeg ;
|
|
};_ecgf ,_bc :=_gg .GetNumbersAsFloat (_gcb .Params );if _bc !=nil {return _bc ;};_ea .Log .Debug ("\u0043u\u0062\u0069\u0063\u0020\u0062\u0065\u007a\u0069\u0065\u0072\u0020p\u0061\u0072\u0061\u006d\u0073\u003a\u0020\u0025\u002b\u0076",_ecgf );_gfe .QuadraticTo (_ecgf [0],_ecgf [1],_ecgf [2],_ecgf [3]);
|
|
case "\u0068":_gfe .ClosePath ();_gfe .NewSubPath ();case "\u0072\u0065":if len (_gcb .Params )!=4{return _geeg ;};_fg ,_bea :=_gg .GetNumbersAsFloat (_gcb .Params );if _bea !=nil {return _bea ;};_gfe .DrawRectangle (_fg [0],_fg [1],_fg [2],_fg [3]);_gfe .NewSubPath ();
|
|
case "\u0053":_gcf ,_ecea :=_faf .ColorspaceStroking .ColorToRGB (_faf .ColorStroking );if _ecea !=nil {_ea .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",_ecea );
|
|
return _ecea ;};_ee ,_dfe :=_gcf .(*_ae .PdfColorDeviceRGB );if !_dfe {_ea .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _ecea ;};_gfe .SetRGBA (_ee .R (),_ee .G (),_ee .B (),1);
|
|
_gfe .Stroke ();case "\u0073":_gcd ,_fdd :=_faf .ColorspaceStroking .ColorToRGB (_faf .ColorStroking );if _fdd !=nil {_ea .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",_fdd );
|
|
return _fdd ;};_ecgg ,_adg :=_gcd .(*_ae .PdfColorDeviceRGB );if !_adg {_ea .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _fdd ;};_gfe .ClosePath ();_gfe .NewSubPath ();
|
|
_gfe .SetRGBA (_ecgg .R (),_ecgg .G (),_ecgg .B (),1);_gfe .Stroke ();case "\u0066","\u0046":_ffa ,_fb :=_faf .ColorspaceNonStroking .ColorToRGB (_faf .ColorNonStroking );if _fb !=nil {_ea .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",_fb );
|
|
return _fb ;};_fdda ,_beb :=_ffa .(*_ae .PdfColorDeviceRGB );if !_beb {_ea .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _fb ;};_gfe .SetRGBA (_fdda .R (),_fdda .G (),_fdda .B (),1);
|
|
_gfe .SetFillRule (_dg .FillRuleWinding );_gfe .Fill ();case "\u0066\u002a":_aef ,_acac :=_faf .ColorspaceNonStroking .ColorToRGB (_faf .ColorNonStroking );if _acac !=nil {_ea .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",_acac );
|
|
return _acac ;};_cff ,_afc :=_aef .(*_ae .PdfColorDeviceRGB );if !_afc {_ea .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _acac ;};_gfe .SetRGBA (_cff .R (),_cff .G (),_cff .B (),1);
|
|
_gfe .SetFillRule (_dg .FillRuleEvenOdd );_gfe .Fill ();case "\u0042":_def ,_ecf :=_faf .ColorspaceNonStroking .ColorToRGB (_faf .ColorNonStroking );if _ecf !=nil {_ea .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",_ecf );
|
|
return _ecf ;};_dba :=_def .(*_ae .PdfColorDeviceRGB );_gfe .SetRGBA (_dba .R (),_dba .G (),_dba .B (),1);_gfe .SetFillRule (_dg .FillRuleWinding );_gfe .FillPreserve ();_def ,_ecf =_faf .ColorspaceStroking .ColorToRGB (_faf .ColorStroking );if _ecf !=nil {_ea .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",_ecf );
|
|
return _ecf ;};_dba =_def .(*_ae .PdfColorDeviceRGB );_gfe .SetRGBA (_dba .R (),_dba .G (),_dba .B (),1);_gfe .Stroke ();case "\u0042\u002a":_dgb ,_dbab :=_faf .ColorspaceNonStroking .ColorToRGB (_faf .ColorNonStroking );if _dbab !=nil {_ea .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",_dbab );
|
|
return _dbab ;};_ffc :=_dgb .(*_ae .PdfColorDeviceRGB );_gfe .SetRGBA (_ffc .R (),_ffc .G (),_ffc .B (),1);_gfe .SetFillRule (_dg .FillRuleEvenOdd );_gfe .FillPreserve ();_dgb ,_dbab =_faf .ColorspaceStroking .ColorToRGB (_faf .ColorStroking );if _dbab !=nil {_ea .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",_dbab );
|
|
return _dbab ;};_ffc =_dgb .(*_ae .PdfColorDeviceRGB );_gfe .SetRGBA (_ffc .R (),_ffc .G (),_ffc .B (),1);_gfe .Stroke ();case "\u0062":_cee ,_fea :=_faf .ColorspaceNonStroking .ColorToRGB (_faf .ColorNonStroking );if _fea !=nil {_ea .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",_fea );
|
|
return _fea ;};_fde :=_cee .(*_ae .PdfColorDeviceRGB );_gfe .SetRGBA (_fde .R (),_fde .G (),_fde .B (),1);_gfe .ClosePath ();_gfe .NewSubPath ();_gfe .SetFillRule (_dg .FillRuleWinding );_gfe .FillPreserve ();_cee ,_fea =_faf .ColorspaceStroking .ColorToRGB (_faf .ColorStroking );
|
|
if _fea !=nil {_ea .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",_fea );return _fea ;};_fde =_cee .(*_ae .PdfColorDeviceRGB );_gfe .SetRGBA (_fde .R (),_fde .G (),_fde .B (),1);
|
|
_gfe .Stroke ();case "\u0062\u002a":_gfe .ClosePath ();_fce ,_eb :=_faf .ColorspaceNonStroking .ColorToRGB (_faf .ColorNonStroking );if _eb !=nil {_ea .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",_eb );
|
|
return _eb ;};_ecd :=_fce .(*_ae .PdfColorDeviceRGB );_gfe .SetRGBA (_ecd .R (),_ecd .G (),_ecd .B (),1);_gfe .NewSubPath ();_gfe .SetFillRule (_dg .FillRuleEvenOdd );_gfe .FillPreserve ();_fce ,_eb =_faf .ColorspaceStroking .ColorToRGB (_faf .ColorStroking );
|
|
if _eb !=nil {_ea .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",_eb );return _eb ;};_ecd =_fce .(*_ae .PdfColorDeviceRGB );_gfe .SetRGBA (_ecd .R (),_ecd .G (),_ecd .B (),1);
|
|
_gfe .Stroke ();case "\u006e":_gfe .ClearPath ();case "\u0057":_gfe .SetFillRule (_dg .FillRuleWinding );_gfe .ClipPreserve ();case "\u0057\u002a":_gfe .SetFillRule (_dg .FillRuleEvenOdd );_gfe .ClipPreserve ();case "\u0072\u0067":_cdd ,_gce :=_faf .ColorNonStroking .(*_ae .PdfColorDeviceRGB );
|
|
if !_gce {_ea .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",_faf .ColorNonStroking );return nil ;};_gfe .SetFillRGBA (_cdd .R (),_cdd .G (),_cdd .B (),1);
|
|
case "\u0052\u0047":_afce ,_gfb :=_faf .ColorStroking .(*_ae .PdfColorDeviceRGB );if !_gfb {_ea .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",_faf .ColorStroking );
|
|
return nil ;};_gfe .SetStrokeRGBA (_afce .R (),_afce .G (),_afce .B (),1);case "\u006b":_dcbf ,_acacd :=_faf .ColorNonStroking .(*_ae .PdfColorDeviceCMYK );if !_acacd {_ea .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",_faf .ColorNonStroking );
|
|
return nil ;};_eg ,_addb :=_faf .ColorspaceNonStroking .ColorToRGB (_dcbf );if _addb !=nil {_ea .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",_faf .ColorNonStroking );
|
|
return nil ;};_bfc ,_acacd :=_eg .(*_ae .PdfColorDeviceRGB );if !_acacd {_ea .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",_eg );return nil ;
|
|
};_gfe .SetFillRGBA (_bfc .R (),_bfc .G (),_bfc .B (),1);case "\u004b":_eac ,_acaf :=_faf .ColorStroking .(*_ae .PdfColorDeviceCMYK );if !_acaf {_ea .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",_faf .ColorStroking );
|
|
return nil ;};_eea ,_cgfg :=_faf .ColorspaceStroking .ColorToRGB (_eac );if _cgfg !=nil {_ea .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",_faf .ColorStroking );
|
|
return nil ;};_ebd ,_acaf :=_eea .(*_ae .PdfColorDeviceRGB );if !_acaf {_ea .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",_eea );return nil ;
|
|
};_gfe .SetStrokeRGBA (_ebd .R (),_ebd .G (),_ebd .B (),1);case "\u0067":_ceeb ,_cdcd :=_faf .ColorNonStroking .(*_ae .PdfColorDeviceGray );if !_cdcd {_ea .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",_faf .ColorNonStroking );
|
|
return nil ;};_adb ,_edc :=_faf .ColorspaceNonStroking .ColorToRGB (_ceeb );if _edc !=nil {_ea .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",_faf .ColorNonStroking );
|
|
return nil ;};_ecff ,_cdcd :=_adb .(*_ae .PdfColorDeviceRGB );if !_cdcd {_ea .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",_adb );return nil ;
|
|
};_gfe .SetFillRGBA (_ecff .R (),_ecff .G (),_ecff .B (),1);case "\u0047":_bca ,_ceebc :=_faf .ColorStroking .(*_ae .PdfColorDeviceGray );if !_ceebc {_ea .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",_faf .ColorStroking );
|
|
return nil ;};_cc ,_fag :=_faf .ColorspaceStroking .ColorToRGB (_bca );if _fag !=nil {_ea .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",_faf .ColorStroking );
|
|
return nil ;};_ega ,_ceebc :=_cc .(*_ae .PdfColorDeviceRGB );if !_ceebc {_ea .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",_cc );return nil ;
|
|
};_gfe .SetStrokeRGBA (_ega .R (),_ega .G (),_ega .B (),1);case "\u0063\u0073","\u0073\u0063","\u0073\u0063\u006e":_ggea ,_gga :=_faf .ColorspaceNonStroking .ColorToRGB (_faf .ColorNonStroking );if _gga !=nil {_ea .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",_faf .ColorNonStroking );
|
|
return nil ;};_geff ,_dad :=_ggea .(*_ae .PdfColorDeviceRGB );if !_dad {_ea .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",_ggea );return nil ;
|
|
};_gfe .SetFillRGBA (_geff .R (),_geff .G (),_geff .B (),1);case "\u0043\u0053","\u0053\u0043","\u0053\u0043\u004e":_fdcb ,_aefg :=_faf .ColorspaceStroking .ColorToRGB (_faf .ColorStroking );if _aefg !=nil {_ea .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",_faf .ColorStroking );
|
|
return nil ;};_fff ,_cfc :=_fdcb .(*_ae .PdfColorDeviceRGB );if !_cfc {_ea .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",_fdcb );return nil ;
|
|
};_gfe .SetStrokeRGBA (_fff .R (),_fff .G (),_fff .B (),1);case "\u0044\u006f":if len (_gcb .Params )!=1{return _geeg ;};_ebc ,_cdg :=_gg .GetName (_gcb .Params [0]);if !_cdg {return _dbf ;};_ ,_ba :=_cae .GetXObjectByName (*_ebc );switch _ba {case _ae .XObjectTypeImage :_ea .Log .Debug ("\u0058\u004f\u0062\u006a\u0065\u0063\u0074\u0020\u0069\u006d\u0061\u0067e\u003a\u0020\u0025\u0073",_ebc .String ());
|
|
_bfce ,_dca :=_cae .GetXObjectImageByName (*_ebc );if _dca !=nil {return _dca ;};_adbf ,_dca :=_bfce .ToImage ();if _dca !=nil {return _dca ;};if _gbb :=_bfce .ColorSpace ;_gbb !=nil {var _aa bool ;switch _gbb .(type ){case *_ae .PdfColorspaceSpecialIndexed :_aa =true ;
|
|
};if _aa {if _bgb ,_ebcg :=_gbb .ImageToRGB (*_adbf );_ebcg !=nil {_ea .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 {_adbf =&_bgb ;};};};_bae :=_gfe .FillPattern ().ColorAt (0,0);var _cgb _gf .Image ;if _bfce .Mask !=nil {if _cgb ,_dca =_fcae (_bfce .Mask ,_bae );_dca !=nil {_ea .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 _fbd _gf .Image ;if _dbff ,_ :=_gg .GetBoolVal (_bfce .ImageMask );_dbff {_fbd =_feb (_adbf ,_bae );}else {_fbd ,_dca =_adbf .ToGoImage ();if _dca !=nil {return _dca ;};};if _cgb !=nil {_fbd =_afg (_fbd ,_cgb );};_bda :=_fbd .Bounds ();_gfe .Push ();
|
|
_gfe .Scale (1.0/float64 (_bda .Dx ()),-1.0/float64 (_bda .Dy ()));_gfe .DrawImageAnchored (_fbd ,0,0,0,1);_gfe .Pop ();case _ae .XObjectTypeForm :_ea .Log .Debug ("\u0058\u004fb\u006a\u0065\u0063t\u0020\u0066\u006f\u0072\u006d\u003a\u0020\u0025\u0073",_ebc .String ());
|
|
_eee ,_egg :=_cae .GetXObjectFormByName (*_ebc );if _egg !=nil {return _egg ;};_gdfd ,_egg :=_eee .GetContentStream ();if _egg !=nil {return _egg ;};_ccd :=_eee .Resources ;if _ccd ==nil {_ccd =_cae ;};_gfe .Push ();if _eee .Matrix !=nil {_eba ,_fcf :=_gg .GetArray (_eee .Matrix );
|
|
if !_fcf {return _dbf ;};_aab ,_deb :=_gg .GetNumbersAsFloat (_eba .Elements ());if _deb !=nil {return _deb ;};if len (_aab )!=6{return _geeg ;};_cfe :=_fd .NewMatrix (_aab [0],_aab [1],_aab [2],_aab [3],_aab [4],_aab [5]);_gfe .SetMatrix (_gfe .Matrix ().Mult (_cfe ));
|
|
};if _eee .BBox !=nil {_edg ,_cdb :=_gg .GetArray (_eee .BBox );if !_cdb {return _dbf ;};_eeg ,_fdcc :=_gg .GetNumbersAsFloat (_edg .Elements ());if _fdcc !=nil {return _fdcc ;};if len (_eeg )!=4{_ea .Log .Debug ("\u004c\u0065\u006e\u0020\u003d\u0020\u0025\u0064",len (_eeg ));
|
|
return _geeg ;};_gfe .DrawRectangle (_eeg [0],_eeg [1],_eeg [2]-_eeg [0],_eeg [3]-_eeg [1]);_gfe .SetRGBA (1,0,0,1);_gfe .Clip ();}else {_ea .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");
|
|
};_egg =_cfd .renderContentStream (_gfe ,string (_gdfd ),_ccd );if _egg !=nil {return _egg ;};_gfe .Pop ();};case "\u0042\u0049":if len (_gcb .Params )!=1{return _geeg ;};_afcg ,_dfg :=_gcb .Params [0].(*_ac .ContentStreamInlineImage );if !_dfg {return nil ;
|
|
};_dda ,_cgbb :=_afcg .ToImage (_cae );if _cgbb !=nil {return _cgbb ;};_ead ,_cgbb :=_dda .ToGoImage ();if _cgbb !=nil {return _cgbb ;};_eed :=_ead .Bounds ();_gfe .Push ();_gfe .Scale (1.0/float64 (_eed .Dx ()),-1.0/float64 (_eed .Dy ()));_gfe .DrawImageAnchored (_ead ,0,0,0,1);
|
|
_gfe .Pop ();case "\u0042\u0054":_dcb .Reset ();case "\u0045\u0054":_dcb .Reset ();case "\u0054\u0072":if len (_gcb .Params )!=1{return _geeg ;};_ede ,_baeb :=_gg .GetNumberAsFloat (_gcb .Params [0]);if _baeb !=nil {return _baeb ;};_dcb .Tr =_dg .TextRenderingMode (_ede );
|
|
case "\u0054\u004c":if len (_gcb .Params )!=1{return _geeg ;};_ada ,_caa :=_gg .GetNumberAsFloat (_gcb .Params [0]);if _caa !=nil {return _caa ;};_dcb .Tl =_ada ;case "\u0054\u0063":if len (_gcb .Params )!=1{return _geeg ;};_bga ,_cbe :=_gg .GetNumberAsFloat (_gcb .Params [0]);
|
|
if _cbe !=nil {return _cbe ;};_ea .Log .Debug ("\u0054\u0063\u003a\u0020\u0025\u0076",_bga );_dcb .Tc =_bga ;case "\u0054\u0077":if len (_gcb .Params )!=1{return _geeg ;};_ggae ,_bfd :=_gg .GetNumberAsFloat (_gcb .Params [0]);if _bfd !=nil {return _bfd ;
|
|
};_ea .Log .Debug ("\u0054\u0077\u003a\u0020\u0025\u0076",_ggae );_dcb .Tw =_ggae ;case "\u0054\u007a":if len (_gcb .Params )!=1{return _geeg ;};_gda ,_dbb :=_gg .GetNumberAsFloat (_gcb .Params [0]);if _dbb !=nil {return _dbb ;};_dcb .Th =_gda ;case "\u0054\u0073":if len (_gcb .Params )!=1{return _geeg ;
|
|
};_cfea ,_cad :=_gg .GetNumberAsFloat (_gcb .Params [0]);if _cad !=nil {return _cad ;};_dcb .Ts =_cfea ;case "\u0054\u0064":if len (_gcb .Params )!=2{return _geeg ;};_eedf ,_cfda :=_gg .GetNumbersAsFloat (_gcb .Params );if _cfda !=nil {return _cfda ;};
|
|
_ea .Log .Debug ("\u0054\u0064\u003a\u0020\u0025\u0076",_eedf );_dcb .ProcTd (_eedf [0],_eedf [1]);case "\u0054\u0044":if len (_gcb .Params )!=2{return _geeg ;};_bbe ,_caaf :=_gg .GetNumbersAsFloat (_gcb .Params );if _caaf !=nil {return _caaf ;};_ea .Log .Debug ("\u0054\u0044\u003a\u0020\u0025\u0076",_bbe );
|
|
_dcb .ProcTD (_bbe [0],_bbe [1]);case "\u0054\u002a":_dcb .ProcTStar ();case "\u0054\u006d":if len (_gcb .Params )!=6{return _geeg ;};_gbc ,_eab :=_gg .GetNumbersAsFloat (_gcb .Params );if _eab !=nil {return _eab ;};_ea .Log .Debug ("\u0054\u0065x\u0074\u0020\u006da\u0074\u0072\u0069\u0078\u003a\u0020\u0025\u002b\u0076",_gbc );
|
|
_dcb .ProcTm (_gbc [0],_gbc [1],_gbc [2],_gbc [3],_gbc [4],_gbc [5]);case "\u0027":if len (_gcb .Params )!=1{return _geeg ;};_afb ,_egge :=_gg .GetStringBytes (_gcb .Params [0]);if !_egge {return _dbf ;};_ea .Log .Debug ("\u0027\u0020\u0073t\u0072\u0069\u006e\u0067\u003a\u0020\u0025\u0073",string (_afb ));
|
|
_dcb .ProcQ (_afb ,_gfe );case "\u0022":if len (_gcb .Params )!=3{return _geeg ;};_ceb ,_ccdd :=_gg .GetNumberAsFloat (_gcb .Params [0]);if _ccdd !=nil {return _ccdd ;};_fdb ,_ccdd :=_gg .GetNumberAsFloat (_gcb .Params [1]);if _ccdd !=nil {return _ccdd ;
|
|
};_fdf ,_ebad :=_gg .GetStringBytes (_gcb .Params [2]);if !_ebad {return _dbf ;};_dcb .ProcDQ (_fdf ,_ceb ,_fdb ,_gfe );case "\u0054\u006a":if len (_gcb .Params )!=1{return _geeg ;};_ffaa ,_fec :=_gg .GetStringBytes (_gcb .Params [0]);if !_fec {return _dbf ;
|
|
};_ea .Log .Debug ("\u0054j\u0020s\u0074\u0072\u0069\u006e\u0067\u003a\u0020\u0060\u0025\u0073\u0060",string (_ffaa ));_dcb .ProcTj (_ffaa ,_gfe );case "\u0054\u004a":if len (_gcb .Params )!=1{return _geeg ;};_dadg ,_afdb :=_gg .GetArray (_gcb .Params [0]);
|
|
if !_afdb {_ea .Log .Debug ("\u0054\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_dadg );return _dbf ;};_ea .Log .Debug ("\u0054\u004a\u0020\u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u002b\u0076",_dadg );for _ ,_gca :=range _dadg .Elements (){switch _eagg :=_gca .(type ){case *_gg .PdfObjectString :if _eagg !=nil {_dcb .ProcTj (_eagg .Bytes (),_gfe );
|
|
};case *_gg .PdfObjectFloat ,*_gg .PdfObjectInteger :_faee ,_gdb :=_gg .GetNumberAsFloat (_eagg );if _gdb ==nil {_dcb .Translate (-_faee *0.001*_dcb .Tf .Size *_dcb .Th /100.0,0);};};};case "\u0054\u0066":if len (_gcb .Params )!=2{return _geeg ;};_ea .Log .Debug ("\u0025\u0023\u0076",_gcb .Params );
|
|
_acg ,_fbf :=_gg .GetName (_gcb .Params [0]);if !_fbf ||_acg ==nil {_ea .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",_gcb .Params [0]);
|
|
return _dbf ;};_ea .Log .Debug ("\u0046\u006f\u006e\u0074\u0020\u006e\u0061\u006d\u0065\u003a\u0020\u0025\u0073",_acg .String ());_fbga ,_acgb :=_gg .GetNumberAsFloat (_gcb .Params [1]);if _acgb !=nil {_ea .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",_gcb .Params [1]);
|
|
return _dbf ;};_ea .Log .Debug ("\u0046\u006f\u006e\u0074\u0020\u0073\u0069\u007a\u0065\u003a\u0020\u0025\u0076",_fbga );_acgbd ,_defc :=_cae .GetFontByName (*_acg );if !_defc {_ea .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0046\u006f\u006e\u0074\u0020\u0025s\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064",_acg .String ());
|
|
return _a .New ("\u0066\u006f\u006e\u0074\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};_ea .Log .Debug ("\u0046\u006f\u006e\u0074\u003a\u0020\u0025\u0054",_acgbd );_agg ,_fbf :=_gg .GetDict (_acgbd );if !_fbf {_ea .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 _dbf ;};_caf ,_acgb :=_ae .NewPdfFontFromPdfObject (_agg );if _acgb !=nil {_ea .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 _acgb ;};_cafe :=_caf .BaseFont ();if _cafe ==""{_cafe =_acg .String ();};_fbc ,_fbf :=_ef [_cafe ];if !_fbf {_fbc ,_acgb =_dg .NewTextFont (_caf ,_fbga );if _acgb !=nil {_ea .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_acgb );};
|
|
};if _fbc ==nil {if len (_cafe )> 7&&_cafe [6]=='+'{_cafe =_cafe [7:];};_ced :=[]string {_cafe ,"\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 _ ,_dce :=range _ced {_ea .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",_dce );if _fbc ,_fbf =_ef [_dce ];
|
|
_fbf {break ;};_dcg :=_bg .Match (_dce );if _dcg ==nil {_ea .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",_dce );continue ;};_fbc ,_acgb =_dg .NewTextFontFromPath (_dcg .Filename ,_fbga );
|
|
if _acgb !=nil {_ea .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",_dcg .Filename );continue ;};_ea .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",_cafe ,_dcg .Name ,_dcg .Filename );
|
|
_ef [_dce ]=_fbc ;break ;};};if _fbc ==nil {_ea .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 _a .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");};_dcb .ProcTf (_fbc .WithSize (_fbga ,_caf ));case "\u0042\u004d\u0043","\u0042\u0044\u0043":case "\u0045\u004d\u0043":default:_ea .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",_gcb .Operand );
|
|
};return nil ;});_cdc =_gb .Process (_fad );if _cdc !=nil {return _cdc ;};return nil ;};
|
|
|
|
// NewImageDevice returns a new image device.
|
|
func NewImageDevice ()*ImageDevice {const _fcg ="r\u0065\u006e\u0064\u0065r.\u004ee\u0077\u0049\u006d\u0061\u0067e\u0044\u0065\u0076\u0069\u0063\u0065";_c .TrackUse (_fcg );return &ImageDevice {};}; |