2020-08-27 21:45:09 +00:00
|
|
|
//
|
|
|
|
// 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/
|
|
|
|
|
2023-03-01 18:45:57 +00:00
|
|
|
package render ;import (_b "errors";_gf "fmt";_da "github.com/adrg/sysfont";_de "github.com/unidoc/unipdf/v3/common";_cc "github.com/unidoc/unipdf/v3/contentstream";_aa "github.com/unidoc/unipdf/v3/contentstream/draw";_d "github.com/unidoc/unipdf/v3/core";
|
|
|
|
_e "github.com/unidoc/unipdf/v3/internal/license";_dd "github.com/unidoc/unipdf/v3/internal/transform";_ge "github.com/unidoc/unipdf/v3/model";_gfg "github.com/unidoc/unipdf/v3/render/internal/context";_eg "github.com/unidoc/unipdf/v3/render/internal/context/imagerender";
|
|
|
|
_ca "golang.org/x/image/draw";_abf "image";_ab "image/color";_a "image/draw";_cb "image/jpeg";_ba "image/png";_ce "math";_f "os";_g "path/filepath";_ff "strings";);
|
2023-02-07 17:17:49 +00:00
|
|
|
|
|
|
|
// PdfShadingType defines PDF shading types.
|
|
|
|
// Source: PDF32000_2008.pdf. Chapter 8.7.4.5
|
2023-03-01 18:45:57 +00:00
|
|
|
type PdfShadingType int64 ;const (ShadingTypeFunctionBased PdfShadingType =1;ShadingTypeAxial PdfShadingType =2;ShadingTypeRadial PdfShadingType =3;ShadingTypeFreeForm PdfShadingType =4;ShadingTypeLatticeForm PdfShadingType =5;ShadingTypeCoons PdfShadingType =6;
|
|
|
|
ShadingTypeTensorProduct PdfShadingType =7;);type renderer struct{_cd float64 };func _fdga (_aeba ,_fcc _abf .Image )_abf .Image {_feg ,_gbeab :=_fcc .Bounds ().Size (),_aeba .Bounds ().Size ();_dgab ,_ebfg :=_feg .X ,_feg .Y ;if _gbeab .X > _dgab {_dgab =_gbeab .X ;
|
|
|
|
};if _gbeab .Y > _ebfg {_ebfg =_gbeab .Y ;};_fee :=_abf .Rect (0,0,_dgab ,_ebfg );if _feg .X !=_dgab ||_feg .Y !=_ebfg {_eaad :=_abf .NewRGBA (_fee );_ca .BiLinear .Scale (_eaad ,_fee ,_aeba ,_fcc .Bounds (),_ca .Over ,nil );_fcc =_eaad ;};if _gbeab .X !=_dgab ||_gbeab .Y !=_ebfg {_gdb :=_abf .NewRGBA (_fee );
|
|
|
|
_ca .BiLinear .Scale (_gdb ,_fee ,_aeba ,_aeba .Bounds (),_ca .Over ,nil );_aeba =_gdb ;};_gfbc :=_abf .NewRGBA (_fee );_ca .DrawMask (_gfbc ,_fee ,_aeba ,_abf .Point {},_fcc ,_abf .Point {},_ca .Over );return _gfbc ;};func _dfbf (_ade *_ge .Image ,_ebfa _ab .Color )_abf .Image {_bfdc ,_aebg :=int (_ade .Width ),int (_ade .Height );
|
|
|
|
_bbee :=_abf .NewRGBA (_abf .Rect (0,0,_bfdc ,_aebg ));for _eed :=0;_eed < _aebg ;_eed ++{for _cdd :=0;_cdd < _bfdc ;_cdd ++{_eda ,_ebec :=_ade .ColorAt (_cdd ,_eed );if _ebec !=nil {_de .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",_cdd ,_eed );
|
|
|
|
continue ;};_fcb ,_dbaf ,_gag ,_ :=_eda .RGBA ();var _dgf _ab .Color ;if _fcb +_dbaf +_gag ==0{_dgf =_ebfa ;}else {_dgf =_ab .Transparent ;};_bbee .Set (_cdd ,_eed ,_dgf );};};return _bbee ;};func (_beb renderer )renderPage (_bb _gfg .Context ,_bdc *_ge .PdfPage ,_agc _dd .Matrix )error {_bbc ,_eba :=_bdc .GetAllContentStreams ();
|
|
|
|
if _eba !=nil {return _eba ;};if _fd :=_agc ;!_fd .Identity (){_bbc =_gf .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",_fd [0],_fd [1],_fd [3],_fd [4],_fd [6],_fd [7],_bbc );
|
|
|
|
};_bb .Translate (0,float64 (_bb .Height ()));_bb .Scale (1,-1);_bb .Push ();_bb .SetRGBA (1,1,1,1);_bb .DrawRectangle (0,0,float64 (_bb .Width ()),float64 (_bb .Height ()));_bb .Fill ();_bb .Pop ();_bb .SetLineWidth (1.0);_bb .SetRGBA (0,0,0,1);return _beb .renderContentStream (_bb ,_bbc ,_bdc .Resources );
|
|
|
|
};func (_ddced renderer )processLinearShading (_fafd _gfg .Context ,_geac *_ge .PdfShading )(_gfg .Gradient ,*_d .PdfObjectArray ,error ){_ffc :=_geac .GetContext ().(*_ge .PdfShadingType2 );if len (_ffc .Function )==0{return nil ,nil ,_b .New ("\u006e\u006f\u0020\u0067\u0072\u0061\u0064i\u0065\u006e\u0074 \u0066\u0075\u006e\u0063t\u0069\u006f\u006e\u0020\u0066\u006f\u0075\u006e\u0064\u002c\u0020\u0073\u006b\u0069\u0070\u0020\u0063\u006f\u006e\u0076\u0065\u0072\u0073\u0069\u006f\u006e");
|
|
|
|
};_eegc ,_fdff :=_ffc .Coords .ToFloat64Array ();if _fdff !=nil {return nil ,nil ,_b .New ("\u0066\u0061\u0069l\u0065\u0064\u0020\u0067e\u0074\u0074\u0069\u006e\u0067\u0020\u0073h\u0061\u0064\u0069\u006e\u0067\u0020\u0070\u006f\u0073\u0069\u0074\u0069\u006f\u006e");
|
|
|
|
};_agcb :=_geac .ColorSpace ;_eegf ,_ggg :=_fafd .Matrix ().Transform (_eegc [0],_eegc [1]);_cafc ,_bffag :=_fafd .Matrix ().Transform (_eegc [2],_eegc [3]);_gbda :=_eg .NewLinearGradient (_eegf ,_ggg ,_cafc ,_bffag );_fdda :=_d .MakeArrayFromFloats ([]float64 {0,0,1,1});
|
|
|
|
for _ ,_aff :=range _eegc {if _aff > 1{_fdda =_ffc .Coords ;break ;};};if _fggc ,_fddb :=_ffc .Function [0].(*_ge .PdfFunctionType2 );_fddb {_gbda ,_fdff =_adfe (_gbda ,_fggc ,_agcb ,1.0,true );}else if _gcd ,_fcg :=_ffc .Function [0].(*_ge .PdfFunctionType3 );
|
|
|
|
_fcg {_gdc :=append ([]float64 {0},_gcd .Bounds ...);_gdc =append (_gdc ,1.0);_gbda ,_fdff =_ddd (_gbda ,_gcd ,_agcb ,_gdc );};return _gbda ,_fdda ,_fdff ;};
|
|
|
|
|
|
|
|
// NewImageDevice returns a new image device.
|
|
|
|
func NewImageDevice ()*ImageDevice {const _df ="r\u0065\u006e\u0064\u0065r.\u004ee\u0077\u0049\u006d\u0061\u0067e\u0044\u0065\u0076\u0069\u0063\u0065";_e .TrackUse (_df );return &ImageDevice {};};func _ddd (_cdfa _gfg .Gradient ,_ggcf *_ge .PdfFunctionType3 ,_cfce _ge .PdfColorspace ,_baa []float64 )(_gfg .Gradient ,error ){var _bfda error ;
|
|
|
|
for _cde :=0;_cde < len (_ggcf .Functions );_cde ++{if _aace ,_adfa :=_ggcf .Functions [_cde ].(*_ge .PdfFunctionType2 );_adfa {_cdfa ,_bfda =_adfe (_cdfa ,_aace ,_cfce ,_baa [_cde +1],_cde ==0);if _bfda !=nil {return nil ,_bfda ;};};};return _cdfa ,nil ;
|
|
|
|
};func _adfe (_facc _gfg .Gradient ,_abb *_ge .PdfFunctionType2 ,_bdce _ge .PdfColorspace ,_dbff float64 ,_ddee bool )(_gfg .Gradient ,error ){switch _bdce .(type ){case *_ge .PdfColorspaceDeviceRGB :if len (_abb .C0 )!=3||len (_abb .C1 )!=3{return nil ,_b .New ("\u0069\u006e\u0063\u006f\u0072\u0072\u0065\u0063\u0074\u0020\u0052\u0047\u0042\u0020\u0063o\u006co\u0072\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u006c\u0065\u006e\u0067\u0074\u0068");
|
|
|
|
};_bcb :=_abb .C0 ;_agb :=_abb .C1 ;if _ddee {_facc .AddColorStop (0.0,_ab .RGBA {R :uint8 (_bcb [0]*255),G :uint8 (_bcb [1]*255),B :uint8 (_bcb [2]*255),A :255});};_facc .AddColorStop (_dbff ,_ab .RGBA {R :uint8 (_agb [0]*255),G :uint8 (_agb [1]*255),B :uint8 (_agb [2]*255),A :255});
|
|
|
|
case *_ge .PdfColorspaceDeviceCMYK :if len (_abb .C0 )!=4||len (_abb .C1 )!=4{return nil ,_b .New ("\u0069\u006e\u0063\u006f\u0072\u0072e\u0063\u0074\u0020\u0043\u004d\u0059\u004b\u0020\u0063\u006f\u006c\u006f\u0072 \u0061\u0072\u0072\u0061\u0079\u0020\u006ce\u006e\u0067\u0074\u0068");
|
|
|
|
};_dff :=_abb .C0 ;_eead :=_abb .C1 ;if _ddee {_facc .AddColorStop (0.0,_ab .CMYK {C :uint8 (_dff [0]*255),M :uint8 (_dff [1]*255),Y :uint8 (_dff [2]*255),K :uint8 (_dff [3]*255)});};_facc .AddColorStop (_dbff ,_ab .CMYK {C :uint8 (_eead [0]*255),M :uint8 (_eead [1]*255),Y :uint8 (_eead [2]*255),K :uint8 (_eead [3]*255)});
|
|
|
|
default:return nil ,_gf .Errorf ("u\u006e\u0073\u0075\u0070\u0070\u006fr\u0074\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072 \u0073\u0070\u0061c\u0065:\u0020\u0025\u0073",_bdce .String ());};return _facc ,nil ;};func (_cdf renderer )renderContentStream (_ga _gfg .Context ,_bf string ,_geb *_ge .PdfPageResources )error {_ed ,_dda :=_cc .NewContentStreamParser (_bf ).Parse ();
|
|
|
|
if _dda !=nil {return _dda ;};_dac :=_ga .TextState ();_dac .GlobalScale =_cdf ._cd ;_fa :=map[string ]*_gfg .TextFont {};_eaf :=_da .NewFinder (&_da .FinderOpts {Extensions :[]string {"\u002e\u0074\u0074\u0066","\u002e\u0074\u0074\u0063"}});var _dca *_cc .ContentStreamOperation ;
|
|
|
|
_db :=_cc .NewContentStreamProcessor (*_ed );_db .AddHandler (_cc .HandlerConditionEnumAllOperands ,"",func (_egg *_cc .ContentStreamOperation ,_cacb _cc .GraphicsState ,_bgc *_ge .PdfPageResources )error {_de .Log .Debug ("\u0050\u0072\u006f\u0063\u0065\u0073\u0073\u0069\u006e\u0067\u0020\u0025\u0073",_egg .Operand );
|
|
|
|
switch _egg .Operand {case "\u0071":_ga .Push ();case "\u0051":_ga .Pop ();_dac =_ga .TextState ();case "\u0063\u006d":if len (_egg .Params )!=6{return _gef ;};_bdcc ,_gbe :=_d .GetNumbersAsFloat (_egg .Params );if _gbe !=nil {return _gbe ;};_cfa :=_dd .NewMatrix (_bdcc [0],_bdcc [1],_bdcc [2],_bdcc [3],_bdcc [4],_bdcc [5]);
|
|
|
|
_de .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",_cfa );_ga .SetMatrix (_ga .Matrix ().Mult (_cfa ));case "\u0077":if len (_egg .Params )!=1{return _gef ;
|
|
|
|
};_aae ,_fg :=_d .GetNumbersAsFloat (_egg .Params );if _fg !=nil {return _fg ;};_ga .SetLineWidth (_aae [0]);case "\u004a":if len (_egg .Params )!=1{return _gef ;};_fe ,_fgd :=_d .GetIntVal (_egg .Params [0]);if !_fgd {return _aga ;};switch _fe {case 0:_ga .SetLineCap (_gfg .LineCapButt );
|
|
|
|
case 1:_ga .SetLineCap (_gfg .LineCapRound );case 2:_ga .SetLineCap (_gfg .LineCapSquare );default:_de .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",_fe );
|
|
|
|
return _gef ;};case "\u006a":if len (_egg .Params )!=1{return _gef ;};_agd ,_dgd :=_d .GetIntVal (_egg .Params [0]);if !_dgd {return _aga ;};switch _agd {case 0:_ga .SetLineJoin (_gfg .LineJoinBevel );case 1:_ga .SetLineJoin (_gfg .LineJoinRound );case 2:_ga .SetLineJoin (_gfg .LineJoinBevel );
|
|
|
|
default:_de .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",_agd );return _gef ;};case "\u004d":if len (_egg .Params )!=1{return _gef ;};_fdg ,_cdb :=_d .GetNumbersAsFloat (_egg .Params );
|
|
|
|
if _cdb !=nil {return _cdb ;};_ =_fdg ;_de .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 (_egg .Params )!=2{return _gef ;};_ddbc ,_gc :=_d .GetArray (_egg .Params [0]);
|
|
|
|
if !_gc {return _aga ;};_ee ,_gc :=_d .GetIntVal (_egg .Params [1]);if !_gc {_ ,_bff :=_d .GetFloatVal (_egg .Params [1]);if !_bff {return _aga ;};};_efff ,_geg :=_d .GetNumbersAsFloat (_ddbc .Elements ());if _geg !=nil {return _geg ;};_ga .SetDash (_efff ...);
|
|
|
|
_ =_ee ;_de .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":_de .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":_de .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 (_egg .Params )!=1{return _gef ;
|
|
|
|
};_abd ,_bab :=_d .GetName (_egg .Params [0]);if !_bab {return _aga ;};if _abd ==nil {return _gef ;};_bdb ,_bab :=_bgc .GetExtGState (*_abd );if !_bab {_de .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",*_abd );
|
|
|
|
return _b .New ("\u0072e\u0073o\u0075\u0072\u0063\u0065\u0020n\u006f\u0074 \u0066\u006f\u0075\u006e\u0064");};_fff ,_bab :=_d .GetDict (_bdb );if !_bab {_de .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 _aga ;};_de .Log .Debug ("G\u0053\u0020\u0064\u0069\u0063\u0074\u003a\u0020\u0025\u0073",_fff .String ());case "\u006d":if len (_egg .Params )!=2{_de .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",_gef );
|
|
|
|
return nil ;};_bfd ,_ddea :=_d .GetNumbersAsFloat (_egg .Params );if _ddea !=nil {return _ddea ;};_de .Log .Debug ("M\u006f\u0076\u0065\u0020\u0074\u006f\u003a\u0020\u0025\u0076",_bfd );_ga .NewSubPath ();_ga .MoveTo (_bfd [0],_bfd [1]);case "\u006c":if len (_egg .Params )!=2{_de .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",_gef );
|
|
|
|
return nil ;};_fc ,_cg :=_d .GetNumbersAsFloat (_egg .Params );if _cg !=nil {return _cg ;};_ga .LineTo (_fc [0],_fc [1]);case "\u0063":if len (_egg .Params )!=6{return _gef ;};_cge ,_agde :=_d .GetNumbersAsFloat (_egg .Params );if _agde !=nil {return _agde ;
|
|
|
|
};_de .Log .Debug ("\u0043u\u0062\u0069\u0063\u0020\u0062\u0065\u007a\u0069\u0065\u0072\u0020p\u0061\u0072\u0061\u006d\u0073\u003a\u0020\u0025\u002b\u0076",_cge );_ga .CubicTo (_cge [0],_cge [1],_cge [2],_cge [3],_cge [4],_cge [5]);case "\u0076","\u0079":if len (_egg .Params )!=4{return _gef ;
|
|
|
|
};_cacbf ,_ege :=_d .GetNumbersAsFloat (_egg .Params );if _ege !=nil {return _ege ;};_de .Log .Debug ("\u0043u\u0062\u0069\u0063\u0020\u0062\u0065\u007a\u0069\u0065\u0072\u0020p\u0061\u0072\u0061\u006d\u0073\u003a\u0020\u0025\u002b\u0076",_cacbf );_ga .QuadraticTo (_cacbf [0],_cacbf [1],_cacbf [2],_cacbf [3]);
|
|
|
|
case "\u0068":_ga .ClosePath ();_ga .NewSubPath ();case "\u0072\u0065":if len (_egg .Params )!=4{return _gef ;};_ddg ,_ec :=_d .GetNumbersAsFloat (_egg .Params );if _ec !=nil {return _ec ;};_ga .DrawRectangle (_ddg [0],_ddg [1],_ddg [2],_ddg [3]);_ga .NewSubPath ();
|
|
|
|
case "\u0053":_dgc ,_bae :=_cacb .ColorspaceStroking .ColorToRGB (_cacb .ColorStroking );if _bae !=nil {_de .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",_bae );
|
|
|
|
return _bae ;};_ged ,_bca :=_dgc .(*_ge .PdfColorDeviceRGB );if !_bca {_de .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _bae ;};_ga .SetRGBA (_ged .R (),_ged .G (),_ged .B (),1);
|
|
|
|
_ga .Stroke ();case "\u0073":_egc ,_ddc :=_cacb .ColorspaceStroking .ColorToRGB (_cacb .ColorStroking );if _ddc !=nil {_de .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",_ddc );
|
|
|
|
return _ddc ;};_fab ,_edb :=_egc .(*_ge .PdfColorDeviceRGB );if !_edb {_de .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _ddc ;};_ga .ClosePath ();_ga .NewSubPath ();
|
|
|
|
_ga .SetRGBA (_fab .R (),_fab .G (),_fab .B (),1);_ga .Stroke ();case "\u0066","\u0046":_bee ,_gca :=_cacb .ColorspaceNonStroking .ColorToRGB (_cacb .ColorNonStroking );if _gca !=nil {_de .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",_gca );
|
|
|
|
return _gca ;};switch _fb :=_bee .(type ){case *_ge .PdfColorDeviceRGB :_ga .SetRGBA (_fb .R (),_fb .G (),_fb .B (),1);_ga .SetFillRule (_gfg .FillRuleWinding );_ga .Fill ();case *_ge .PdfColorPattern :_ga .Fill ();};_de .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");
|
|
|
|
case "\u0066\u002a":_cgb ,_fda :=_cacb .ColorspaceNonStroking .ColorToRGB (_cacb .ColorNonStroking );if _fda !=nil {_de .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",_fda );
|
|
|
|
return _fda ;};_gae ,_dded :=_cgb .(*_ge .PdfColorDeviceRGB );if !_dded {_de .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _fda ;};_ga .SetRGBA (_gae .R (),_gae .G (),_gae .B (),1);
|
|
|
|
_ga .SetFillRule (_gfg .FillRuleEvenOdd );_ga .Fill ();case "\u0042":_bda ,_cfc :=_cacb .ColorspaceNonStroking .ColorToRGB (_cacb .ColorNonStroking );if _cfc !=nil {_de .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",_cfc );
|
|
|
|
return _cfc ;};switch _ae :=_bda .(type ){case *_ge .PdfColorDeviceRGB :_ga .SetRGBA (_ae .R (),_ae .G (),_ae .B (),1);_ga .SetFillRule (_gfg .FillRuleWinding );_ga .FillPreserve ();_bda ,_cfc =_cacb .ColorspaceStroking .ColorToRGB (_cacb .ColorStroking );
|
|
|
|
if _cfc !=nil {_de .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",_cfc );return _cfc ;};if _gaee ,_caf :=_bda .(*_ge .PdfColorDeviceRGB );
|
|
|
|
_caf {_ga .SetRGBA (_gaee .R (),_gaee .G (),_gaee .B (),1);_ga .Stroke ();};case *_ge .PdfColorPattern :_ga .SetFillRule (_gfg .FillRuleWinding );_ga .Fill ();_ga .StrokePattern ();};case "\u0042\u002a":_bde ,_bbf :=_cacb .ColorspaceNonStroking .ColorToRGB (_cacb .ColorNonStroking );
|
|
|
|
if _bbf !=nil {_de .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",_bbf );return _bbf ;};switch _abff :=_bde .(type ){case *_ge .PdfColorDeviceRGB :_ga .SetRGBA (_abff .R (),_abff .G (),_abff .B (),1);
|
|
|
|
_ga .SetFillRule (_gfg .FillRuleEvenOdd );_ga .FillPreserve ();_bde ,_bbf =_cacb .ColorspaceStroking .ColorToRGB (_cacb .ColorStroking );if _bbf !=nil {_de .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",_bbf );
|
|
|
|
return _bbf ;};if _abe ,_afd :=_bde .(*_ge .PdfColorDeviceRGB );_afd {_ga .SetRGBA (_abe .R (),_abe .G (),_abe .B (),1);_ga .Stroke ();};case *_ge .PdfColorPattern :_ga .SetFillRule (_gfg .FillRuleEvenOdd );_ga .Fill ();_ga .StrokePattern ();};case "\u0062":_ga .ClosePath ();
|
|
|
|
_ecb ,_fcd :=_cacb .ColorspaceNonStroking .ColorToRGB (_cacb .ColorNonStroking );if _fcd !=nil {_de .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",_fcd );
|
|
|
|
return _fcd ;};switch _bef :=_ecb .(type ){case *_ge .PdfColorDeviceRGB :_ga .SetRGBA (_bef .R (),_bef .G (),_bef .B (),1);_ga .NewSubPath ();_ga .SetFillRule (_gfg .FillRuleWinding );_ga .FillPreserve ();_ecb ,_fcd =_cacb .ColorspaceStroking .ColorToRGB (_cacb .ColorStroking );
|
|
|
|
if _fcd !=nil {_de .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",_fcd );return _fcd ;};if _gbc ,_dgb :=_ecb .(*_ge .PdfColorDeviceRGB );
|
|
|
|
_dgb {_ga .SetRGBA (_gbc .R (),_gbc .G (),_gbc .B (),1);_ga .Stroke ();};case *_ge .PdfColorPattern :_ga .NewSubPath ();_ga .SetFillRule (_gfg .FillRuleWinding );_ga .Fill ();_ga .StrokePattern ();};case "\u0062\u002a":_ga .ClosePath ();_fae ,_dee :=_cacb .ColorspaceNonStroking .ColorToRGB (_cacb .ColorNonStroking );
|
|
|
|
if _dee !=nil {_de .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",_dee );return _dee ;};switch _afdf :=_fae .(type ){case *_ge .PdfColorDeviceRGB :_ga .SetRGBA (_afdf .R (),_afdf .G (),_afdf .B (),1);
|
|
|
|
_ga .NewSubPath ();_ga .SetFillRule (_gfg .FillRuleEvenOdd );_ga .FillPreserve ();_fae ,_dee =_cacb .ColorspaceStroking .ColorToRGB (_cacb .ColorStroking );if _dee !=nil {_de .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",_dee );
|
|
|
|
return _dee ;};if _gbd ,_dgdb :=_fae .(*_ge .PdfColorDeviceRGB );_dgdb {_ga .SetRGBA (_gbd .R (),_gbd .G (),_gbd .B (),1);_ga .Stroke ();};case *_ge .PdfColorPattern :_ga .NewSubPath ();_ga .SetFillRule (_gfg .FillRuleEvenOdd );_ga .Fill ();_ga .StrokePattern ();
|
|
|
|
};case "\u006e":_ga .ClearPath ();case "\u0057":_ga .SetFillRule (_gfg .FillRuleWinding );_ga .ClipPreserve ();case "\u0057\u002a":_ga .SetFillRule (_gfg .FillRuleEvenOdd );_ga .ClipPreserve ();case "\u0072\u0067":_bgf ,_dga :=_cacb .ColorNonStroking .(*_ge .PdfColorDeviceRGB );
|
|
|
|
if !_dga {_de .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",_cacb .ColorNonStroking );return nil ;};_ga .SetFillRGBA (_bgf .R (),_bgf .G (),_bgf .B (),1);
|
|
|
|
case "\u0052\u0047":_fbf ,_ecg :=_cacb .ColorStroking .(*_ge .PdfColorDeviceRGB );if !_ecg {_de .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",_cacb .ColorStroking );
|
|
|
|
return nil ;};_ga .SetStrokeRGBA (_fbf .R (),_fbf .G (),_fbf .B (),1);case "\u006b":_gec ,_dae :=_cacb .ColorNonStroking .(*_ge .PdfColorDeviceCMYK );if !_dae {_de .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",_cacb .ColorNonStroking );
|
|
|
|
return nil ;};_gg ,_bbe :=_cacb .ColorspaceNonStroking .ColorToRGB (_gec );if _bbe !=nil {_de .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",_cacb .ColorNonStroking );
|
|
|
|
return nil ;};_aec ,_dae :=_gg .(*_ge .PdfColorDeviceRGB );if !_dae {_de .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",_gg );return nil ;
|
|
|
|
};_ga .SetFillRGBA (_aec .R (),_aec .G (),_aec .B (),1);case "\u004b":_eee ,_fdgg :=_cacb .ColorStroking .(*_ge .PdfColorDeviceCMYK );if !_fdgg {_de .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",_cacb .ColorStroking );
|
|
|
|
return nil ;};_dbf ,_acb :=_cacb .ColorspaceStroking .ColorToRGB (_eee );if _acb !=nil {_de .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",_cacb .ColorStroking );
|
|
|
|
return nil ;};_bgfc ,_fdgg :=_dbf .(*_ge .PdfColorDeviceRGB );if !_fdgg {_de .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",_dbf );return nil ;
|
|
|
|
};_ga .SetStrokeRGBA (_bgfc .R (),_bgfc .G (),_bgfc .B (),1);case "\u0067":_ebg ,_ebb :=_cacb .ColorNonStroking .(*_ge .PdfColorDeviceGray );if !_ebb {_de .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",_cacb .ColorNonStroking );
|
|
|
|
return nil ;};_gad ,_dba :=_cacb .ColorspaceNonStroking .ColorToRGB (_ebg );if _dba !=nil {_de .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",_cacb .ColorNonStroking );
|
|
|
|
return nil ;};_bec ,_ebb :=_gad .(*_ge .PdfColorDeviceRGB );if !_ebb {_de .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",_gad );return nil ;
|
|
|
|
};_ga .SetFillRGBA (_bec .R (),_bec .G (),_bec .B (),1);case "\u0047":_cfd ,_fbg :=_cacb .ColorStroking .(*_ge .PdfColorDeviceGray );if !_fbg {_de .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",_cacb .ColorStroking );
|
|
|
|
return nil ;};_cfg ,_gd :=_cacb .ColorspaceStroking .ColorToRGB (_cfd );if _gd !=nil {_de .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",_cacb .ColorStroking );
|
|
|
|
return nil ;};_fdc ,_fbg :=_cfg .(*_ge .PdfColorDeviceRGB );if !_fbg {_de .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",_cfg );return nil ;
|
|
|
|
};_ga .SetStrokeRGBA (_fdc .R (),_fdc .G (),_fdc .B (),1);case "\u0063\u0073":if len (_egg .Params )> 0{if _dce ,_ggd :=_d .GetName (_egg .Params [0]);_ggd &&_dce .String ()=="\u0050a\u0074\u0074\u0065\u0072\u006e"{break ;};};_baba ,_fge :=_cacb .ColorspaceNonStroking .ColorToRGB (_cacb .ColorNonStroking );
|
|
|
|
if _fge !=nil {_de .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",_cacb .ColorNonStroking );return nil ;};_fga ,_ddfb :=_baba .(*_ge .PdfColorDeviceRGB );
|
|
|
|
if !_ddfb {_de .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",_baba );return nil ;};_ga .SetFillRGBA (_fga .R (),_fga .G (),_fga .B (),1);
|
|
|
|
case "\u0073\u0063":_fea ,_cgbg :=_cacb .ColorspaceNonStroking .ColorToRGB (_cacb .ColorNonStroking );if _cgbg !=nil {_de .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",_cacb .ColorNonStroking );
|
|
|
|
return nil ;};_eag ,_ebf :=_fea .(*_ge .PdfColorDeviceRGB );if !_ebf {_de .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 nil ;
|
|
|
|
};_ga .SetFillRGBA (_eag .R (),_eag .G (),_eag .B (),1);case "\u0073\u0063\u006e":if len (_egg .Params )> 0&&len (_dca .Params )> 0{if _afde ,_bbca :=_d .GetName (_dca .Params [0]);_bbca &&_afde .String ()=="\u0050a\u0074\u0074\u0065\u0072\u006e"{if _fdae ,_gbf :=_d .GetName (_egg .Params [0]);
|
|
|
|
_gbf {_gfb ,_eeg :=_cdf .processGradient (_ga ,_egg ,_bgc ,_fdae );if _eeg !=nil {_de .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0077\u0068\u0065\u006e\u0020\u0070\u0072o\u0063\u0065\u0073\u0073\u0069\u006eg\u0020\u0067\u0072\u0061\u0064\u0069\u0065\u006e\u0074\u0020\u0064\u0061\u0074a\u003a\u0020\u0025\u0076",_eeg );
|
|
|
|
break ;};if _gfb ==nil {_de .Log .Debug ("\u0055\u006ek\u006e\u006f\u0077n\u0020\u0067\u0072\u0061\u0064\u0069\u0065\u006e\u0074");break ;};_ga .SetFillStyle (_gfb );_ga .SetStrokeStyle (_gfb );break ;};};};_ced ,_cbb :=_cacb .ColorspaceNonStroking .ColorToRGB (_cacb .ColorNonStroking );
|
|
|
|
if _cbb !=nil {_de .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",_cacb .ColorNonStroking );return nil ;};_cgd ,_abda :=_ced .(*_ge .PdfColorDeviceRGB );
|
|
|
|
if !_abda {_de .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",_ced );return nil ;};_ga .SetFillRGBA (_cgd .R (),_cgd .G (),_cgd .B (),1);
|
|
|
|
case "\u0043\u0053":if len (_egg .Params )> 0{if _fdf ,_efg :=_d .GetName (_egg .Params [0]);_efg &&_fdf .String ()=="\u0050a\u0074\u0074\u0065\u0072\u006e"{break ;};};_gbcg ,_egd :=_cacb .ColorspaceStroking .ColorToRGB (_cacb .ColorStroking );if _egd !=nil {_de .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",_cacb .ColorStroking );
|
|
|
|
return nil ;};_dfdg ,_dcf :=_gbcg .(*_ge .PdfColorDeviceRGB );if !_dcf {_de .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",_gbcg );return nil ;
|
|
|
|
};_ga .SetStrokeRGBA (_dfdg .R (),_dfdg .G (),_dfdg .B (),1);case "\u0053\u0043":_dfb ,_dec :=_cacb .ColorspaceStroking .ColorToRGB (_cacb .ColorStroking );if _dec !=nil {_de .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",_cacb .ColorStroking );
|
|
|
|
return nil ;};_fgb ,_bfe :=_dfb .(*_ge .PdfColorDeviceRGB );if !_bfe {_de .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",_dfb );return nil ;
|
|
|
|
};_ga .SetStrokeRGBA (_fgb .R (),_fgb .G (),_fgb .B (),1);case "\u0053\u0043\u004e":if len (_egg .Params )> 0&&len (_dca .Params )> 0{if _ffd ,_aeb :=_d .GetName (_dca .Params [0]);_aeb &&_ffd .String ()=="\u0050a\u0074\u0074\u0065\u0072\u006e"{if _bbcg ,_cca :=_d .GetName (_egg .Params [0]);
|
|
|
|
_cca {_eac ,_cdg :=_cdf .processGradient (_ga ,_egg ,_bgc ,_bbcg );if _cdg !=nil {_de .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0077\u0068\u0065\u006e\u0020\u0070\u0072o\u0063\u0065\u0073\u0073\u0069\u006eg\u0020\u0067\u0072\u0061\u0064\u0069\u0065\u006e\u0074\u0020\u0064\u0061\u0074a\u003a\u0020\u0025\u0076",_cdg );
|
|
|
|
break ;};if _eac ==nil {_de .Log .Debug ("\u0055\u006ek\u006e\u006f\u0077n\u0020\u0067\u0072\u0061\u0064\u0069\u0065\u006e\u0074");break ;};_ga .SetFillStyle (_eac );_ga .SetStrokeStyle (_eac );break ;};};};_cbd ,_eea :=_cacb .ColorspaceStroking .ColorToRGB (_cacb .ColorStroking );
|
|
|
|
if _eea !=nil {_de .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",_cacb .ColorStroking );return nil ;};_bffa ,_gecc :=_cbd .(*_ge .PdfColorDeviceRGB );
|
|
|
|
if !_gecc {_de .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",_cbd );return nil ;};_ga .SetStrokeRGBA (_bffa .R (),_bffa .G (),_bffa .B (),1);
|
|
|
|
case "\u0073\u0068":if len (_egg .Params )!=1{_de .Log .Debug ("\u0049n\u0076\u0061\u006c\u0069\u0064\u0020\u0073\u0068\u0020\u0070\u0061r\u0061\u006d\u0073\u0020\u0066\u006f\u0072\u006d\u0061\u0074");break ;};_eagb ,_bgd :=_d .GetName (_egg .Params [0]);
|
|
|
|
if !_bgd {_de .Log .Debug ("F\u0061\u0069\u006c\u0065\u0064\u0020g\u0065\u0074\u0074\u0069\u006e\u0067\u0020\u0073\u0068a\u0064\u0069\u006eg\u0020n\u0061\u006d\u0065");break ;};_bbb ,_bgd :=_bgc .GetShadingByName (*_eagb );if !_bgd {_de .Log .Debug ("F\u0061\u0069\u006c\u0065\u0064\u0020g\u0065\u0074\u0074\u0069\u006e\u0067\u0020\u0073\u0068a\u0064\u0069\u006eg\u0020d\u0061\u0074\u0061");
|
|
|
|
break ;};_gdf ,_dgg ,_bcg :=_cdf .processShading (_ga ,_bbb );if _bcg !=nil {_de .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0077\u0068\u0065\u006e\u0020\u0070\u0072\u006f\u0063\u0065\u0073\u0073\u0069\u006e\u0067\u0020\u0073\u0068a\u0064\u0069\u006e\u0067\u0020d\u0061\u0074a\u003a\u0020\u0025\u0076",_bcg );
|
|
|
|
break ;};if _gdf ==nil {_de .Log .Debug ("\u0055\u006ek\u006e\u006f\u0077n\u0020\u0067\u0072\u0061\u0064\u0069\u0065\u006e\u0074");break ;};_abg ,_bcg :=_dgg .ToFloat64Array ();if _bcg !=nil {_de .Log .Debug ("\u0045\u0072r\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069\u006e\u0067\u0020\u0063\u006f\u006f\u0072\u0064\u0069\u006e\u0061\u0074\u0065\u0073: \u0025\u0076",_bcg );
|
|
|
|
break ;};_ga .DrawRectangle (_abg [0],_abg [1],_abg [2],_abg [3]);_ga .NewSubPath ();_ga .SetFillStyle (_gdf );_ga .SetStrokeStyle (_gdf );_ga .Fill ();case "\u0044\u006f":if len (_egg .Params )!=1{return _gef ;};_dgge ,_ebc :=_d .GetName (_egg .Params [0]);
|
|
|
|
if !_ebc {return _aga ;};_ ,_cce :=_bgc .GetXObjectByName (*_dgge );switch _cce {case _ge .XObjectTypeImage :_de .Log .Debug ("\u0058\u004f\u0062\u006a\u0065\u0063\u0074\u0020\u0069\u006d\u0061\u0067e\u003a\u0020\u0025\u0073",_dgge .String ());_egcf ,_gdfd :=_bgc .GetXObjectImageByName (*_dgge );
|
|
|
|
if _gdfd !=nil {return _gdfd ;};_gde ,_gdfd :=_egcf .ToImage ();if _gdfd !=nil {return _gdfd ;};if _abc :=_egcf .ColorSpace ;_abc !=nil {var _gfbb bool ;switch _abc .(type ){case *_ge .PdfColorspaceSpecialIndexed :_gfbb =true ;};if _gfbb {if _afda ,_egcb :=_abc .ImageToRGB (*_gde );
|
|
|
|
_egcb !=nil {_de .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 {_gde =&_afda ;};};};_efge :=_ga .FillPattern ().ColorAt (0,0);var _ecf _abf .Image ;if _egcf .Mask !=nil {if _ecf ,_gdfd =_dgdf (_egcf .Mask ,_efge );_gdfd !=nil {_de .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");
|
|
|
|
};}else if _egcf .SMask !=nil {if _ecf ,_gdfd =_fgaf (_egcf .SMask ,_efge );_gdfd !=nil {_de .Log .Debug ("W\u0041\u0052\u004e\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020\u0067\u0065\u0074\u0020\u0073\u006f\u0066\u0074\u0020\u0069\u006da\u0067e\u0020\u006d\u0061\u0073k\u002e\u0020O\u0075\u0074\u0070\u0075\u0074\u0020\u006d\u0061\u0079\u0020\u0062\u0065\u0020\u0069\u006e\u0063\u006f\u0072\u0072\u0065\u0063\u0074\u002e");
|
|
|
|
};};var _cbdb _abf .Image ;if _gea ,_ :=_d .GetBoolVal (_egcf .ImageMask );_gea {_cbdb =_dfbf (_gde ,_efge );}else {_cbdb ,_gdfd =_gde .ToGoImage ();if _gdfd !=nil {return _gdfd ;};};if _ecf !=nil {_cbdb =_fdga (_cbdb ,_ecf );};_abfc :=_cbdb .Bounds ();
|
|
|
|
_ga .Push ();_ga .Scale (1.0/float64 (_abfc .Dx ()),-1.0/float64 (_abfc .Dy ()));_ga .DrawImageAnchored (_cbdb ,0,0,0,1);_ga .Pop ();case _ge .XObjectTypeForm :_de .Log .Debug ("\u0058\u004fb\u006a\u0065\u0063t\u0020\u0066\u006f\u0072\u006d\u003a\u0020\u0025\u0073",_dgge .String ());
|
|
|
|
_gaa ,_ceb :=_bgc .GetXObjectFormByName (*_dgge );if _ceb !=nil {return _ceb ;};_dgde ,_ceb :=_gaa .GetContentStream ();if _ceb !=nil {return _ceb ;};_fgg :=_gaa .Resources ;if _fgg ==nil {_fgg =_bgc ;};_ga .Push ();if _gaa .Matrix !=nil {_bdf ,_dcd :=_d .GetArray (_gaa .Matrix );
|
|
|
|
if !_dcd {return _aga ;};_fdd ,_bcd :=_d .GetNumbersAsFloat (_bdf .Elements ());if _bcd !=nil {return _bcd ;};if len (_fdd )!=6{return _gef ;};_bed :=_dd .NewMatrix (_fdd [0],_fdd [1],_fdd [2],_fdd [3],_fdd [4],_fdd [5]);_ga .SetMatrix (_ga .Matrix ().Mult (_bed ));
|
|
|
|
};if _gaa .BBox !=nil {_deg ,_cgba :=_d .GetArray (_gaa .BBox );if !_cgba {return _aga ;};_caa ,_dbg :=_d .GetNumbersAsFloat (_deg .Elements ());if _dbg !=nil {return _dbg ;};if len (_caa )!=4{_de .Log .Debug ("\u004c\u0065\u006e\u0020\u003d\u0020\u0025\u0064",len (_caa ));
|
|
|
|
return _gef ;};_ga .DrawRectangle (_caa [0],_caa [1],_caa [2]-_caa [0],_caa [3]-_caa [1]);_ga .SetRGBA (1,0,0,1);_ga .Clip ();}else {_de .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");
|
|
|
|
};_ceb =_cdf .renderContentStream (_ga ,string (_dgde ),_fgg );if _ceb !=nil {return _ceb ;};_ga .Pop ();};case "\u0042\u0049":if len (_egg .Params )!=1{return _gef ;};_dcdf ,_ddec :=_egg .Params [0].(*_cc .ContentStreamInlineImage );if !_ddec {return nil ;
|
|
|
|
};_ccg ,_ccgd :=_dcdf .ToImage (_bgc );if _ccgd !=nil {return _ccgd ;};_dgdeg ,_ccgd :=_ccg .ToGoImage ();if _ccgd !=nil {return _ccgd ;};_cfdd :=_dgdeg .Bounds ();_ga .Push ();_ga .Scale (1.0/float64 (_cfdd .Dx ()),-1.0/float64 (_cfdd .Dy ()));_ga .DrawImageAnchored (_dgdeg ,0,0,0,1);
|
|
|
|
_ga .Pop ();case "\u0042\u0054":_dac .Reset ();case "\u0045\u0054":_dac .Reset ();case "\u0054\u0072":if len (_egg .Params )!=1{return _gef ;};_ggf ,_eafc :=_d .GetNumberAsFloat (_egg .Params [0]);if _eafc !=nil {return _eafc ;};_dac .Tr =_gfg .TextRenderingMode (_ggf );
|
|
|
|
case "\u0054\u004c":if len (_egg .Params )!=1{return _gef ;};_gbea ,_gfa :=_d .GetNumberAsFloat (_egg .Params [0]);if _gfa !=nil {return _gfa ;};_dac .Tl =_gbea ;case "\u0054\u0063":if len (_egg .Params )!=1{return _gef ;};_afdc ,_bce :=_d .GetNumberAsFloat (_egg .Params [0]);
|
|
|
|
if _bce !=nil {return _bce ;};_de .Log .Debug ("\u0054\u0063\u003a\u0020\u0025\u0076",_afdc );_dac .Tc =_afdc ;case "\u0054\u0077":if len (_egg .Params )!=1{return _gef ;};_gfad ,_feb :=_d .GetNumberAsFloat (_egg .Params [0]);if _feb !=nil {return _feb ;
|
|
|
|
};_de .Log .Debug ("\u0054\u0077\u003a\u0020\u0025\u0076",_gfad );_dac .Tw =_gfad ;case "\u0054\u007a":if len (_egg .Params )!=1{return _gef ;};_gdg ,_fgc :=_d .GetNumberAsFloat (_egg .Params [0]);if _fgc !=nil {return _fgc ;};_dac .Th =_gdg ;case "\u0054\u0073":if len (_egg .Params )!=1{return _gef ;
|
|
|
|
};_aef ,_ebfb :=_d .GetNumberAsFloat (_egg .Params [0]);if _ebfb !=nil {return _ebfb ;};_dac .Ts =_aef ;case "\u0054\u0064":if len (_egg .Params )!=2{return _gef ;};_ece ,_bac :=_d .GetNumbersAsFloat (_egg .Params );if _bac !=nil {return _bac ;};_de .Log .Debug ("\u0054\u0064\u003a\u0020\u0025\u0076",_ece );
|
|
|
|
_dac .ProcTd (_ece [0],_ece [1]);case "\u0054\u0044":if len (_egg .Params )!=2{return _gef ;};_bcf ,_cfb :=_d .GetNumbersAsFloat (_egg .Params );if _cfb !=nil {return _cfb ;};_de .Log .Debug ("\u0054\u0044\u003a\u0020\u0025\u0076",_bcf );_dac .ProcTD (_bcf [0],_bcf [1]);
|
|
|
|
case "\u0054\u002a":_dac .ProcTStar ();case "\u0054\u006d":if len (_egg .Params )!=6{return _gef ;};_gdee ,_dfa :=_d .GetNumbersAsFloat (_egg .Params );if _dfa !=nil {return _dfa ;};_de .Log .Debug ("\u0054\u0065x\u0074\u0020\u006da\u0074\u0072\u0069\u0078\u003a\u0020\u0025\u002b\u0076",_gdee );
|
|
|
|
_dac .ProcTm (_gdee [0],_gdee [1],_gdee [2],_gdee [3],_gdee [4],_gdee [5]);case "\u0027":if len (_egg .Params )!=1{return _gef ;};_bfg ,_egb :=_d .GetStringBytes (_egg .Params [0]);if !_egb {return _aga ;};_de .Log .Debug ("\u0027\u0020\u0073t\u0072\u0069\u006e\u0067\u003a\u0020\u0025\u0073",string (_bfg ));
|
|
|
|
_dac .ProcQ (_bfg ,_ga );case "\u0022":if len (_egg .Params )!=3{return _gef ;};_daca ,_bbd :=_d .GetNumberAsFloat (_egg .Params [0]);if _bbd !=nil {return _bbd ;};_cebb ,_bbd :=_d .GetNumberAsFloat (_egg .Params [1]);if _bbd !=nil {return _bbd ;};_ecfg ,_ddce :=_d .GetStringBytes (_egg .Params [2]);
|
|
|
|
if !_ddce {return _aga ;};_dac .ProcDQ (_ecfg ,_daca ,_cebb ,_ga );case "\u0054\u006a":if len (_egg .Params )!=1{return _gef ;};_aefe ,_fgcc :=_d .GetStringBytes (_egg .Params [0]);if !_fgcc {return _aga ;};_de .Log .Debug ("\u0054j\u0020s\u0074\u0072\u0069\u006e\u0067\u003a\u0020\u0060\u0025\u0073\u0060",string (_aefe ));
|
|
|
|
_dac .ProcTj (_aefe ,_ga );case "\u0054\u004a":if len (_egg .Params )!=1{return _gef ;};_bebg ,_ad :=_d .GetArray (_egg .Params [0]);if !_ad {_de .Log .Debug ("\u0054\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_bebg );return _aga ;};_de .Log .Debug ("\u0054\u004a\u0020\u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u002b\u0076",_bebg );
|
|
|
|
for _ ,_dfe :=range _bebg .Elements (){switch _dcdc :=_dfe .(type ){case *_d .PdfObjectString :if _dcdc !=nil {_dac .ProcTj (_dcdc .Bytes (),_ga );};case *_d .PdfObjectFloat ,*_d .PdfObjectInteger :_add ,_gba :=_d .GetNumberAsFloat (_dcdc );if _gba ==nil {_dac .Translate (-_add *0.001*_dac .Tf .Size *_dac .Th /100.0,0);
|
|
|
|
};};};case "\u0054\u0066":if len (_egg .Params )!=2{return _gef ;};_de .Log .Debug ("\u0025\u0023\u0076",_egg .Params );_caag ,_dceg :=_d .GetName (_egg .Params [0]);if !_dceg ||_caag ==nil {_de .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",_egg .Params [0]);
|
|
|
|
return _aga ;};_de .Log .Debug ("\u0046\u006f\u006e\u0074\u0020\u006e\u0061\u006d\u0065\u003a\u0020\u0025\u0073",_caag .String ());_cea ,_cgg :=_d .GetNumberAsFloat (_egg .Params [1]);if _cgg !=nil {_de .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",_egg .Params [1]);
|
|
|
|
return _aga ;};_de .Log .Debug ("\u0046\u006f\u006e\u0074\u0020\u0073\u0069\u007a\u0065\u003a\u0020\u0025\u0076",_cea );_aaeg ,_ceg :=_bgc .GetFontByName (*_caag );if !_ceg {_de .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0046\u006f\u006e\u0074\u0020\u0025s\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064",_caag .String ());
|
|
|
|
return _b .New ("\u0066\u006f\u006e\u0074\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};_de .Log .Debug ("\u0046\u006f\u006e\u0074\u003a\u0020\u0025\u0054",_aaeg );_ebe ,_dceg :=_d .GetDict (_aaeg );if !_dceg {_de .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 _aga ;};_gff ,_cgg :=_ge .NewPdfFontFromPdfObject (_ebe );if _cgg !=nil {_de .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 _cgg ;};_agdg :=_gff .BaseFont ();if _agdg ==""{_agdg =_caag .String ();};_feae ,_dceg :=_fa [_agdg ];if !_dceg {_feae ,_cgg =_gfg .NewTextFont (_gff ,_cea );if _cgg !=nil {_de .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cgg );};
|
|
|
|
};if _feae ==nil {if len (_agdg )> 7&&_agdg [6]=='+'{_agdg =_agdg [7:];};_fdab :=[]string {_agdg ,"\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 _ ,_adf :=range _fdab {_de .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",_adf );if _feae ,_dceg =_fa [_adf ];
|
|
|
|
_dceg {break ;};_bdfc :=_eaf .Match (_adf );if _bdfc ==nil {_de .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",_adf );continue ;};_feae ,_cgg =_gfg .NewTextFontFromPath (_bdfc .Filename ,_cea );
|
|
|
|
if _cgg !=nil {_de .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",_bdfc .Filename );continue ;};_de .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",_agdg ,_bdfc .Name ,_bdfc .Filename );
|
|
|
|
_fa [_adf ]=_feae ;break ;};};if _feae ==nil {_de .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 _b .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");};_dac .ProcTf (_feae .WithSize (_cea ,_gff ));case "\u0042\u004d\u0043","\u0042\u0044\u0043":case "\u0045\u004d\u0043":default:_de .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",_egg .Operand );
|
|
|
|
};_dca =_egg ;return nil ;});_dda =_db .Process (_geb );if _dda !=nil {return _dda ;};return nil ;};
|
2022-06-06 22:48:24 +00:00
|
|
|
|
2022-09-23 18:05:51 +00:00
|
|
|
// RenderToPath converts the specified PDF page into an image and saves the
|
|
|
|
// result at the specified location.
|
2023-03-01 18:45:57 +00:00
|
|
|
func (_cac *ImageDevice )RenderToPath (page *_ge .PdfPage ,outputPath string )error {_dfd ,_bg :=_cac .Render (page );if _bg !=nil {return _bg ;};_bc :=_ff .ToLower (_g .Ext (outputPath ));if _bc ==""{return _b .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 _ggga (outputPath ,_dfd );case "\u002e\u006a\u0070\u0067","\u002e\u006a\u0070e\u0067":return _afb (outputPath ,_dfd ,100);};return _gf .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 (_dbb renderer )processShading (_fgf _gfg .Context ,_ega *_ge .PdfShading )(_gfg .Gradient ,*_d .PdfObjectArray ,error ){_geccd :=int64 (*_ega .ShadingType );if _geccd ==int64 (ShadingTypeAxial ){return _dbb .processLinearShading (_fgf ,_ega );}else if _geccd ==int64 (ShadingTypeRadial ){return _dbb .processRadialShading (_fgf ,_ega );
|
|
|
|
}else {_de .Log .Debug (_gf .Sprintf ("\u0050r\u006f\u0063e\u0073\u0073\u0069n\u0067\u0020\u0067\u0072\u0061\u0064\u0069e\u006e\u0074\u0020\u0074\u0079\u0070e\u0020\u0025\u0064\u0020\u006e\u006f\u0074\u0020\u0079\u0065\u0074 \u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064",_geccd ));
|
|
|
|
};return nil ,nil ,nil ;};var (_aga =_b .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");_gef =_b .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");
|
|
|
|
);func _gefg (_aaef ,_bbcaf ,_fef float64 )_aa .BoundingBox {return _aa .Path {Points :[]_aa .Point {_aa .NewPoint (0,0).Rotate (_fef ),_aa .NewPoint (_aaef ,0).Rotate (_fef ),_aa .NewPoint (0,_bbcaf ).Rotate (_fef ),_aa .NewPoint (_aaef ,_bbcaf ).Rotate (_fef )}}.GetBoundingBox ();
|
|
|
|
};
|
2023-01-08 22:34:27 +00:00
|
|
|
|
2023-02-07 17:17:49 +00:00
|
|
|
// Render converts the specified PDF page into an image and returns the result.
|
2023-03-01 18:45:57 +00:00
|
|
|
func (_ef *ImageDevice )Render (page *_ge .PdfPage )(_abf .Image ,error ){_aac ,_af :=page .GetMediaBox ();if _af !=nil {return nil ,_af ;};_aac .Normalize ();_dc :=page .CropBox ;var _eff ,_bd float64 ;if _dc !=nil {_dc .Normalize ();_eff ,_bd =_dc .Width (),_dc .Height ();
|
|
|
|
};_ag :=page .Rotate ;_be ,_ddb ,_dg ,_cbc :=_aac .Llx ,_aac .Lly ,_aac .Width (),_aac .Height ();_cf :=_dd .IdentityMatrix ();if _ag !=nil &&*_ag %360!=0&&*_ag %90==0{_gfd :=-float64 (*_ag );_gb :=_gefg (_dg ,_cbc ,_gfd );_cf =_cf .Translate ((_gb .Width -_dg )/2+_dg /2,(_gb .Height -_cbc )/2+_cbc /2).Rotate (_gfd *_ce .Pi /180).Translate (-_dg /2,-_cbc /2);
|
|
|
|
_dg ,_cbc =_gb .Width ,_gb .Height ;if _dc !=nil {_dde :=_gefg (_eff ,_bd ,_gfd );_eff ,_bd =_dde .Width ,_dde .Height ;};};if _be !=0||_ddb !=0{_cf =_cf .Translate (-_be ,-_ddb );};_ef ._cd =1.0;if _ef .OutputWidth !=0{_ac :=_dg ;if _dc !=nil {_ac =_eff ;
|
|
|
|
};_ef ._cd =float64 (_ef .OutputWidth )/_ac ;_dg ,_cbc ,_eff ,_bd =_dg *_ef ._cd ,_cbc *_ef ._cd ,_eff *_ef ._cd ,_bd *_ef ._cd ;_cf =_dd .ScaleMatrix (_ef ._cd ,_ef ._cd ).Mult (_cf );};_cee :=_eg .NewContext (int (_dg ),int (_cbc ));if _acd :=_ef .renderPage (_cee ,page ,_cf );
|
|
|
|
_acd !=nil {return nil ,_acd ;};_eb :=_cee .Image ();if _dc !=nil {_ea ,_dad :=(_dc .Llx -_be )*_ef ._cd ,(_dc .Lly -_ddb )*_ef ._cd ;_ddf :=_abf .Rect (0,0,int (_eff ),int (_bd ));_cbe :=_abf .Pt (int (_ea ),int (_cbc -_dad -_bd ));_afe :=_abf .NewRGBA (_ddf );
|
|
|
|
_a .Draw (_afe ,_ddf ,_eb ,_cbe ,_a .Src );_eb =_afe ;};return _eb ,nil ;};func _dgdf (_cdgg _d .PdfObject ,_egeb _ab .Color )(_abf .Image ,error ){_fce ,_bdee :=_d .GetStream (_cdgg );if !_bdee {return nil ,nil ;};_bcc ,_gbca :=_ge .NewXObjectImageFromStream (_fce );
|
|
|
|
if _gbca !=nil {return nil ,_gbca ;};_fec ,_gbca :=_bcc .ToImage ();if _gbca !=nil {return nil ,_gbca ;};return _dfbf (_fec ,_egeb ),nil ;};func _bfed (_aab *_ge .Image ,_fcbd _ab .Color )_abf .Image {_ecfb ,_cfac :=int (_aab .Width ),int (_aab .Height );
|
|
|
|
_caff :=_abf .NewRGBA (_abf .Rect (0,0,_ecfb ,_cfac ));for _fgbe :=0;_fgbe < _cfac ;_fgbe ++{for _bfgb :=0;_bfgb < _ecfb ;_bfgb ++{_bcaf ,_aca :=_aab .ColorAt (_bfgb ,_fgbe );if _aca !=nil {_de .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",_bfgb ,_fgbe );
|
|
|
|
continue ;};_abdb ,_adcc ,_ecaf ,_ :=_bcaf .RGBA ();var _gcf _ab .Color ;if _abdb +_adcc +_ecaf ==0{_gcf =_ab .Transparent ;}else {_gcf =_fcbd ;};_caff .Set (_bfgb ,_fgbe ,_gcf );};};return _caff ;};func (_ede renderer )processRadialShading (_babad _gfg .Context ,_fac *_ge .PdfShading )(_gfg .Gradient ,*_d .PdfObjectArray ,error ){_gdd :=_fac .GetContext ().(*_ge .PdfShadingType3 );
|
|
|
|
if len (_gdd .Function )==0{return nil ,nil ,_b .New ("\u006e\u006f\u0020\u0067\u0072\u0061\u0064i\u0065\u006e\u0074 \u0066\u0075\u006e\u0063t\u0069\u006f\u006e\u0020\u0066\u006f\u0075\u006e\u0064\u002c\u0020\u0073\u006b\u0069\u0070\u0020\u0063\u006f\u006e\u0076\u0065\u0072\u0073\u0069\u006f\u006e");
|
|
|
|
};_gge ,_ead :=_gdd .Coords .ToFloat64Array ();if _ead !=nil {return nil ,nil ,_b .New ("\u0066\u0061\u0069l\u0065\u0064\u0020\u0067e\u0074\u0074\u0069\u006e\u0067\u0020\u0073h\u0061\u0064\u0069\u006e\u0067\u0020\u0070\u006f\u0073\u0069\u0074\u0069\u006f\u006e");
|
|
|
|
};_afff :=_fac .ColorSpace ;_eaa :=_d .MakeArrayFromFloats ([]float64 {0,0,1,1});var _ggc ,_gaad ,_adc ,_eaaa ,_aaec ,_ddgg float64 ;_ggc ,_gaad =_babad .Matrix ().Transform (_gge [0],_gge [1]);_adc ,_eaaa =_babad .Matrix ().Transform (_gge [3],_gge [4]);
|
|
|
|
_aaec ,_ =_babad .Matrix ().Transform (_gge [2],0);_ddgg ,_ =_babad .Matrix ().Transform (_gge [5],0);_abed ,_ :=_babad .Matrix ().Translation ();_aaec -=_abed ;_ddgg -=_abed ;for _bag ,_gfc :=range _gge {if _bag ==2||_bag ==5{continue ;};if _gfc > 1.0{_fbfb :=_ce .Min (_ggc -_aaec ,_adc -_ddgg );
|
|
|
|
_cacc :=_ce .Min (_gaad -_aaec ,_eaaa -_ddgg );_edbb :=_ce .Max (_ggc +_aaec ,_adc +_ddgg );_cdba :=_ce .Max (_gaad +_aaec ,_eaaa +_ddgg );_abce :=_edbb -_fbfb ;_abef :=_cacc -_cdba ;_eaa =_d .MakeArrayFromFloats ([]float64 {_fbfb ,_cacc ,_abce ,_abef });
|
|
|
|
break ;};};_gead :=_eg .NewRadialGradient (_ggc ,_gaad ,_aaec ,_adc ,_eaaa ,_ddgg );if _fgac ,_fbff :=_gdd .Function [0].(*_ge .PdfFunctionType2 );_fbff {_gead ,_ead =_adfe (_gead ,_fgac ,_afff ,1.0,true );}else if _dag ,_bagd :=_gdd .Function [0].(*_ge .PdfFunctionType3 );
|
|
|
|
_bagd {_cafd :=append ([]float64 {0},_dag .Bounds ...);_cafd =append (_cafd ,1.0);_gead ,_ead =_ddd (_gead ,_dag ,_afff ,_cafd );};if _ead !=nil {return nil ,nil ,_ead ;};return _gead ,_eaa ,nil ;};func _fgaf (_bfef _d .PdfObject ,_dbbg _ab .Color )(_abf .Image ,error ){_dfde ,_ada :=_d .GetStream (_bfef );
|
|
|
|
if !_ada {return nil ,nil ;};_efd ,_baf :=_ge .NewXObjectImageFromStream (_dfde );if _baf !=nil {return nil ,_baf ;};_beea ,_baf :=_efd .ToImage ();if _baf !=nil {return nil ,_baf ;};return _bfed (_beea ,_dbbg ),nil ;};func _afb (_bdag string ,_gcc _abf .Image ,_ecd int )error {_gaec ,_egga :=_f .Create (_bdag );
|
|
|
|
if _egga !=nil {return _egga ;};defer _gaec .Close ();return _cb .Encode (_gaec ,_gcc ,&_cb .Options {Quality :_ecd });};func (_dab renderer )processGradient (_bfgd _gfg .Context ,_eca *_cc .ContentStreamOperation ,_gga *_ge .PdfPageResources ,_cdc *_d .PdfObjectName )(_gfg .Gradient ,error ){if _faf ,_cga :=_gga .GetPatternByName (*_cdc );
|
|
|
|
_cga &&_faf .IsShading (){_abgf :=_faf .GetAsShadingPattern ().Shading ;_bba ,_ ,_ggac :=_dab .processShading (_bfgd ,_abgf );if _ggac !=nil {return nil ,_ggac ;};return _bba ,nil ;};return nil ,nil ;};
|
2021-04-23 20:28:14 +00:00
|
|
|
|
2021-05-11 00:01:27 +00:00
|
|
|
// 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.
|
2023-03-01 18:45:57 +00:00
|
|
|
OutputWidth int ;};func _ggga (_cgc string ,_eec _abf .Image )error {_gbfc ,_daa :=_f .Create (_cgc );if _daa !=nil {return _daa ;};defer _gbfc .Close ();return _ba .Encode (_gbfc ,_eec );};
|