mirror of
https://github.com/unidoc/unipdf.git
synced 2025-04-24 13:48:49 +08:00
143 lines
37 KiB
Go
143 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 (_gg "errors";_gde "fmt";_a "github.com/adrg/sysfont";_cbc "github.com/unidoc/unipdf/v3/common";_gf "github.com/unidoc/unipdf/v3/contentstream";_b "github.com/unidoc/unipdf/v3/contentstream/draw";_fb "github.com/unidoc/unipdf/v3/core";
|
|
_cg "github.com/unidoc/unipdf/v3/internal/license";_ac "github.com/unidoc/unipdf/v3/internal/transform";_fe "github.com/unidoc/unipdf/v3/model";_ad "github.com/unidoc/unipdf/v3/render/internal/context";_ba "github.com/unidoc/unipdf/v3/render/internal/context/imagerender";
|
|
_eb "golang.org/x/image/draw";_gb "image";_ee "image/color";_c "image/draw";_cb "image/jpeg";_f "image/png";_ef "math";_gd "os";_e "path/filepath";_d "strings";);func _bdd (_eceg string ,_ced _gb .Image )error {_fabg ,_cfab :=_gd .Create (_eceg );if _cfab !=nil {return _cfab ;
|
|
};defer _fabg .Close ();return _f .Encode (_fabg ,_ced );};
|
|
|
|
// 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 ;};
|
|
|
|
// NewImageDevice returns a new image device.
|
|
func NewImageDevice ()*ImageDevice {const _cd ="r\u0065\u006e\u0064\u0065r.\u004ee\u0077\u0049\u006d\u0061\u0067e\u0044\u0065\u0076\u0069\u0063\u0065";_cg .TrackUse (_cd );return &ImageDevice {};};func _gfea (_aead *_fe .Image ,_cfd _ee .Color )_gb .Image {_bdg ,_ddc :=int (_aead .Width ),int (_aead .Height );
|
|
_fdee :=_gb .NewRGBA (_gb .Rect (0,0,_bdg ,_ddc ));for _cge :=0;_cge < _ddc ;_cge ++{for _dafa :=0;_dafa < _bdg ;_dafa ++{_gfd ,_bddc :=_aead .ColorAt (_dafa ,_cge );if _bddc !=nil {_cbc .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",_dafa ,_cge );
|
|
continue ;};_eff ,_aeaf ,_accg ,_ :=_gfd .RGBA ();var _abfg _ee .Color ;if _eff +_aeaf +_accg ==0{_abfg =_cfd ;}else {_abfg =_ee .Transparent ;};_fdee .Set (_dafa ,_cge ,_abfg );};};return _fdee ;};type renderer struct{_bea float64 };var (_dcd =_gg .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
|
|
_ca =_gg .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072"););func (_fa renderer )renderPage (_cec _ad .Context ,_eac *_fe .PdfPage ,_fg _ac .Matrix )error {_cf ,_bg :=_eac .GetAllContentStreams ();
|
|
if _bg !=nil {return _bg ;};if _age :=_fg ;!_age .Identity (){_cf =_gde .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",_age [0],_age [1],_age [3],_age [4],_age [6],_age [7],_cf );
|
|
};_cec .Translate (0,float64 (_cec .Height ()));_cec .Scale (1,-1);_cec .Push ();_cec .SetRGBA (1,1,1,1);_cec .DrawRectangle (0,0,float64 (_cec .Width ()),float64 (_cec .Height ()));_cec .Fill ();_cec .Pop ();_cec .SetLineWidth (1.0);_cec .SetRGBA (0,0,0,1);
|
|
return _fa .renderContentStream (_cec ,_cf ,_eac .Resources );};
|
|
|
|
// RenderToPath converts the specified PDF page into an image and saves the
|
|
// result at the specified location.
|
|
func (_bf *ImageDevice )RenderToPath (page *_fe .PdfPage ,outputPath string )error {_beb ,_gda :=_bf .Render (page );if _gda !=nil {return _gda ;};_gdd :=_d .ToLower (_e .Ext (outputPath ));if _gdd ==""{return _gg .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 _gdd {case "\u002e\u0070\u006e\u0067":return _bdd (outputPath ,_beb );case "\u002e\u006a\u0070\u0067","\u002e\u006a\u0070e\u0067":return _cac (outputPath ,_beb ,100);};return _gde .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",_gdd );
|
|
};func _cac (_bbb string ,_aba _gb .Image ,_bcfg int )error {_bbe ,_ebf :=_gd .Create (_bbb );if _ebf !=nil {return _ebf ;};defer _bbe .Close ();return _cb .Encode (_bbe ,_aba ,&_cb .Options {Quality :_bcfg });};func (_ece renderer )renderContentStream (_cdf _ad .Context ,_fc string ,_faf *_fe .PdfPageResources )error {_bd ,_fgg :=_gf .NewContentStreamParser (_fc ).Parse ();
|
|
if _fgg !=nil {return _fgg ;};_gbg :=_cdf .TextState ();_gbg .GlobalScale =_ece ._bea ;_bdc :=map[string ]*_ad .TextFont {};_cca :=_a .NewFinder (&_a .FinderOpts {Extensions :[]string {"\u002e\u0074\u0074\u0066","\u002e\u0074\u0074\u0063"}});_ed :=_gf .NewContentStreamProcessor (*_bd );
|
|
_ed .AddHandler (_gf .HandlerConditionEnumAllOperands ,"",func (_ecb *_gf .ContentStreamOperation ,_eef _gf .GraphicsState ,_edb *_fe .PdfPageResources )error {_cbc .Log .Debug ("\u0050\u0072\u006f\u0063\u0065\u0073\u0073\u0069\u006e\u0067\u0020\u0025\u0073",_ecb .Operand );
|
|
switch _ecb .Operand {case "\u0071":_cdf .Push ();case "\u0051":_cdf .Pop ();_gbg =_cdf .TextState ();case "\u0063\u006d":if len (_ecb .Params )!=6{return _ca ;};_db ,_aeb :=_fb .GetNumbersAsFloat (_ecb .Params );if _aeb !=nil {return _aeb ;};_ffa :=_ac .NewMatrix (_db [0],_db [1],_db [2],_db [3],_db [4],_db [5]);
|
|
_cbc .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",_ffa );_cdf .SetMatrix (_cdf .Matrix ().Mult (_ffa ));case "\u0077":if len (_ecb .Params )!=1{return _ca ;
|
|
};_adg ,_dcb :=_fb .GetNumbersAsFloat (_ecb .Params );if _dcb !=nil {return _dcb ;};_cdf .SetLineWidth (_adg [0]);case "\u004a":if len (_ecb .Params )!=1{return _ca ;};_gbe ,_da :=_fb .GetIntVal (_ecb .Params [0]);if !_da {return _dcd ;};switch _gbe {case 0:_cdf .SetLineCap (_ad .LineCapButt );
|
|
case 1:_cdf .SetLineCap (_ad .LineCapRound );case 2:_cdf .SetLineCap (_ad .LineCapSquare );default:_cbc .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",_gbe );
|
|
return _ca ;};case "\u006a":if len (_ecb .Params )!=1{return _ca ;};_gfc ,_cfc :=_fb .GetIntVal (_ecb .Params [0]);if !_cfc {return _dcd ;};switch _gfc {case 0:_cdf .SetLineJoin (_ad .LineJoinBevel );case 1:_cdf .SetLineJoin (_ad .LineJoinRound );case 2:_cdf .SetLineJoin (_ad .LineJoinBevel );
|
|
default:_cbc .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",_gfc );return _ca ;};case "\u004d":if len (_ecb .Params )!=1{return _ca ;};_dca ,_aca :=_fb .GetNumbersAsFloat (_ecb .Params );
|
|
if _aca !=nil {return _aca ;};_ =_dca ;_cbc .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 (_ecb .Params )!=2{return _ca ;};_bce ,_bag :=_fb .GetArray (_ecb .Params [0]);
|
|
if !_bag {return _dcd ;};_aag ,_bag :=_fb .GetIntVal (_ecb .Params [1]);if !_bag {return _dcd ;};_acd ,_fbg :=_fb .GetNumbersAsFloat (_bce .Elements ());if _fbg !=nil {return _fbg ;};_cdf .SetDash (_acd ...);_ =_aag ;_cbc .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":_cbc .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":_cbc .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 (_ecb .Params )!=1{return _ca ;};_beg ,_ddg :=_fb .GetName (_ecb .Params [0]);if !_ddg {return _dcd ;};if _beg ==nil {return _ca ;};_eg ,_ddg :=_edb .GetExtGState (*_beg );if !_ddg {_cbc .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",*_beg );
|
|
return _gg .New ("\u0072e\u0073o\u0075\u0072\u0063\u0065\u0020n\u006f\u0074 \u0066\u006f\u0075\u006e\u0064");};_fed ,_ddg :=_fb .GetDict (_eg );if !_ddg {_cbc .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 _dcd ;};_cbc .Log .Debug ("G\u0053\u0020\u0064\u0069\u0063\u0074\u003a\u0020\u0025\u0073",_fed .String ());case "\u006d":if len (_ecb .Params )!=2{_cbc .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",_ca );
|
|
return nil ;};_feg ,_cfa :=_fb .GetNumbersAsFloat (_ecb .Params );if _cfa !=nil {return _cfa ;};_cbc .Log .Debug ("M\u006f\u0076\u0065\u0020\u0074\u006f\u003a\u0020\u0025\u0076",_feg );_cdf .NewSubPath ();_cdf .MoveTo (_feg [0],_feg [1]);case "\u006c":if len (_ecb .Params )!=2{_cbc .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",_ca );
|
|
return nil ;};_efd ,_bga :=_fb .GetNumbersAsFloat (_ecb .Params );if _bga !=nil {return _bga ;};_cdf .LineTo (_efd [0],_efd [1]);case "\u0063":if len (_ecb .Params )!=6{return _ca ;};_cgc ,_bcf :=_fb .GetNumbersAsFloat (_ecb .Params );if _bcf !=nil {return _bcf ;
|
|
};_cbc .Log .Debug ("\u0043u\u0062\u0069\u0063\u0020\u0062\u0065\u007a\u0069\u0065\u0072\u0020p\u0061\u0072\u0061\u006d\u0073\u003a\u0020\u0025\u002b\u0076",_cgc );_cdf .CubicTo (_cgc [0],_cgc [1],_cgc [2],_cgc [3],_cgc [4],_cgc [5]);case "\u0076","\u0079":if len (_ecb .Params )!=4{return _ca ;
|
|
};_bac ,_dbe :=_fb .GetNumbersAsFloat (_ecb .Params );if _dbe !=nil {return _dbe ;};_cbc .Log .Debug ("\u0043u\u0062\u0069\u0063\u0020\u0062\u0065\u007a\u0069\u0065\u0072\u0020p\u0061\u0072\u0061\u006d\u0073\u003a\u0020\u0025\u002b\u0076",_bac );_cdf .QuadraticTo (_bac [0],_bac [1],_bac [2],_bac [3]);
|
|
case "\u0068":_cdf .ClosePath ();_cdf .NewSubPath ();case "\u0072\u0065":if len (_ecb .Params )!=4{return _ca ;};_gdg ,_aad :=_fb .GetNumbersAsFloat (_ecb .Params );if _aad !=nil {return _aad ;};_cdf .DrawRectangle (_gdg [0],_gdg [1],_gdg [2],_gdg [3]);
|
|
_cdf .NewSubPath ();case "\u0053":_ccd ,_ffac :=_eef .ColorspaceStroking .ColorToRGB (_eef .ColorStroking );if _ffac !=nil {_cbc .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",_ffac );
|
|
return _ffac ;};_bcc ,_dbee :=_ccd .(*_fe .PdfColorDeviceRGB );if !_dbee {_cbc .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _ffac ;};_cdf .SetRGBA (_bcc .R (),_bcc .G (),_bcc .B (),1);
|
|
_cdf .Stroke ();case "\u0073":_dg ,_agdc :=_eef .ColorspaceStroking .ColorToRGB (_eef .ColorStroking );if _agdc !=nil {_cbc .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",_agdc );
|
|
return _agdc ;};_ab ,_df :=_dg .(*_fe .PdfColorDeviceRGB );if !_df {_cbc .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _agdc ;};_cdf .ClosePath ();_cdf .NewSubPath ();
|
|
_cdf .SetRGBA (_ab .R (),_ab .G (),_ab .B (),1);_cdf .Stroke ();case "\u0066","\u0046":_bff ,_fee :=_eef .ColorspaceNonStroking .ColorToRGB (_eef .ColorNonStroking );if _fee !=nil {_cbc .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",_fee );
|
|
return _fee ;};_fcc ,_cba :=_bff .(*_fe .PdfColorDeviceRGB );if !_cba {_cbc .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _fee ;};_cdf .SetRGBA (_fcc .R (),_fcc .G (),_fcc .B (),1);
|
|
_cdf .SetFillRule (_ad .FillRuleWinding );_cdf .Fill ();case "\u0066\u002a":_aaeb ,_bega :=_eef .ColorspaceNonStroking .ColorToRGB (_eef .ColorNonStroking );if _bega !=nil {_cbc .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",_bega );
|
|
return _bega ;};_ada ,_ebg :=_aaeb .(*_fe .PdfColorDeviceRGB );if !_ebg {_cbc .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _bega ;};_cdf .SetRGBA (_ada .R (),_ada .G (),_ada .B (),1);
|
|
_cdf .SetFillRule (_ad .FillRuleEvenOdd );_cdf .Fill ();case "\u0042":_fbd ,_abf :=_eef .ColorspaceNonStroking .ColorToRGB (_eef .ColorNonStroking );if _abf !=nil {_cbc .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",_abf );
|
|
return _abf ;};_dad :=_fbd .(*_fe .PdfColorDeviceRGB );_cdf .SetRGBA (_dad .R (),_dad .G (),_dad .B (),1);_cdf .SetFillRule (_ad .FillRuleWinding );_cdf .FillPreserve ();_fbd ,_abf =_eef .ColorspaceStroking .ColorToRGB (_eef .ColorStroking );if _abf !=nil {_cbc .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",_abf );
|
|
return _abf ;};_dad =_fbd .(*_fe .PdfColorDeviceRGB );_cdf .SetRGBA (_dad .R (),_dad .G (),_dad .B (),1);_cdf .Stroke ();case "\u0042\u002a":_dfc ,_daf :=_eef .ColorspaceNonStroking .ColorToRGB (_eef .ColorNonStroking );if _daf !=nil {_cbc .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",_daf );
|
|
return _daf ;};_cee :=_dfc .(*_fe .PdfColorDeviceRGB );_cdf .SetRGBA (_cee .R (),_cee .G (),_cee .B (),1);_cdf .SetFillRule (_ad .FillRuleEvenOdd );_cdf .FillPreserve ();_dfc ,_daf =_eef .ColorspaceStroking .ColorToRGB (_eef .ColorStroking );if _daf !=nil {_cbc .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",_daf );
|
|
return _daf ;};_cee =_dfc .(*_fe .PdfColorDeviceRGB );_cdf .SetRGBA (_cee .R (),_cee .G (),_cee .B (),1);_cdf .Stroke ();case "\u0062":_ede ,_fd :=_eef .ColorspaceNonStroking .ColorToRGB (_eef .ColorNonStroking );if _fd !=nil {_cbc .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",_fd );
|
|
return _fd ;};_egf :=_ede .(*_fe .PdfColorDeviceRGB );_cdf .SetRGBA (_egf .R (),_egf .G (),_egf .B (),1);_cdf .ClosePath ();_cdf .NewSubPath ();_cdf .SetFillRule (_ad .FillRuleWinding );_cdf .FillPreserve ();_ede ,_fd =_eef .ColorspaceStroking .ColorToRGB (_eef .ColorStroking );
|
|
if _fd !=nil {_cbc .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",_fd );return _fd ;};_egf =_ede .(*_fe .PdfColorDeviceRGB );_cdf .SetRGBA (_egf .R (),_egf .G (),_egf .B (),1);
|
|
_cdf .Stroke ();case "\u0062\u002a":_cdf .ClosePath ();_gff ,_ccde :=_eef .ColorspaceNonStroking .ColorToRGB (_eef .ColorNonStroking );if _ccde !=nil {_cbc .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",_ccde );
|
|
return _ccde ;};_adgg :=_gff .(*_fe .PdfColorDeviceRGB );_cdf .SetRGBA (_adgg .R (),_adgg .G (),_adgg .B (),1);_cdf .NewSubPath ();_cdf .SetFillRule (_ad .FillRuleEvenOdd );_cdf .FillPreserve ();_gff ,_ccde =_eef .ColorspaceStroking .ColorToRGB (_eef .ColorStroking );
|
|
if _ccde !=nil {_cbc .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",_ccde );return _ccde ;};_adgg =_gff .(*_fe .PdfColorDeviceRGB );_cdf .SetRGBA (_adgg .R (),_adgg .G (),_adgg .B (),1);
|
|
_cdf .Stroke ();case "\u006e":_cdf .ClearPath ();case "\u0057":_cdf .SetFillRule (_ad .FillRuleWinding );_cdf .ClipPreserve ();case "\u0057\u002a":_cdf .SetFillRule (_ad .FillRuleEvenOdd );_cdf .ClipPreserve ();case "\u0072\u0067":_fde ,_aac :=_eef .ColorNonStroking .(*_fe .PdfColorDeviceRGB );
|
|
if !_aac {_cbc .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",_eef .ColorNonStroking );return nil ;};_cdf .SetFillRGBA (_fde .R (),_fde .G (),_fde .B (),1);
|
|
case "\u0052\u0047":_gga ,_bfb :=_eef .ColorStroking .(*_fe .PdfColorDeviceRGB );if !_bfb {_cbc .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",_eef .ColorStroking );
|
|
return nil ;};_cdf .SetStrokeRGBA (_gga .R (),_gga .G (),_gga .B (),1);case "\u006b":_ega ,_bae :=_eef .ColorNonStroking .(*_fe .PdfColorDeviceCMYK );if !_bae {_cbc .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",_eef .ColorNonStroking );
|
|
return nil ;};_fedb ,_fab :=_eef .ColorspaceNonStroking .ColorToRGB (_ega );if _fab !=nil {_cbc .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",_eef .ColorNonStroking );
|
|
return nil ;};_fdc ,_bae :=_fedb .(*_fe .PdfColorDeviceRGB );if !_bae {_cbc .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",_fedb );return nil ;
|
|
};_cdf .SetFillRGBA (_fdc .R (),_fdc .G (),_fdc .B (),1);case "\u004b":_dbg ,_aaca :=_eef .ColorStroking .(*_fe .PdfColorDeviceCMYK );if !_aaca {_cbc .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",_eef .ColorStroking );
|
|
return nil ;};_aea ,_dbge :=_eef .ColorspaceStroking .ColorToRGB (_dbg );if _dbge !=nil {_cbc .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",_eef .ColorStroking );
|
|
return nil ;};_af ,_aaca :=_aea .(*_fe .PdfColorDeviceRGB );if !_aaca {_cbc .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",_aea );return nil ;
|
|
};_cdf .SetStrokeRGBA (_af .R (),_af .G (),_af .B (),1);case "\u0067":_fafe ,_gfe :=_eef .ColorNonStroking .(*_fe .PdfColorDeviceGray );if !_gfe {_cbc .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",_eef .ColorNonStroking );
|
|
return nil ;};_eca ,_dafc :=_eef .ColorspaceNonStroking .ColorToRGB (_fafe );if _dafc !=nil {_cbc .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",_eef .ColorNonStroking );
|
|
return nil ;};_cfcc ,_gfe :=_eca .(*_fe .PdfColorDeviceRGB );if !_gfe {_cbc .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",_eca );return nil ;
|
|
};_cdf .SetFillRGBA (_cfcc .R (),_cfcc .G (),_cfcc .B (),1);case "\u0047":_edea ,_fga :=_eef .ColorStroking .(*_fe .PdfColorDeviceGray );if !_fga {_cbc .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",_eef .ColorStroking );
|
|
return nil ;};_gfed ,_gc :=_eef .ColorspaceStroking .ColorToRGB (_edea );if _gc !=nil {_cbc .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",_eef .ColorStroking );
|
|
return nil ;};_ggg ,_fga :=_gfed .(*_fe .PdfColorDeviceRGB );if !_fga {_cbc .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",_gfed );return nil ;
|
|
};_cdf .SetStrokeRGBA (_ggg .R (),_ggg .G (),_ggg .B (),1);case "\u0063\u0073","\u0073\u0063","\u0073\u0063\u006e":_dce ,_aga :=_eef .ColorspaceNonStroking .ColorToRGB (_eef .ColorNonStroking );if _aga !=nil {_cbc .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",_eef .ColorNonStroking );
|
|
return nil ;};_edbe ,_ged :=_dce .(*_fe .PdfColorDeviceRGB );if !_ged {_cbc .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",_dce );return nil ;
|
|
};_cdf .SetFillRGBA (_edbe .R (),_edbe .G (),_edbe .B (),1);case "\u0043\u0053","\u0053\u0043","\u0053\u0043\u004e":_bda ,_egb :=_eef .ColorspaceStroking .ColorToRGB (_eef .ColorStroking );if _egb !=nil {_cbc .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",_eef .ColorStroking );
|
|
return nil ;};_cag ,_dafb :=_bda .(*_fe .PdfColorDeviceRGB );if !_dafb {_cbc .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",_bda );return nil ;
|
|
};_cdf .SetStrokeRGBA (_cag .R (),_cag .G (),_cag .B (),1);case "\u0044\u006f":if len (_ecb .Params )!=1{return _ca ;};_fag ,_cef :=_fb .GetName (_ecb .Params [0]);if !_cef {return _dcd ;};_ ,_abd :=_edb .GetXObjectByName (*_fag );switch _abd {case _fe .XObjectTypeImage :_cbc .Log .Debug ("\u0058\u004f\u0062\u006a\u0065\u0063\u0074\u0020\u0069\u006d\u0061\u0067e\u003a\u0020\u0025\u0073",_fag .String ());
|
|
_egg ,_bcd :=_edb .GetXObjectImageByName (*_fag );if _bcd !=nil {return _bcd ;};_aff ,_bcd :=_egg .ToImage ();if _bcd !=nil {return _bcd ;};if _fea :=_egg .ColorSpace ;_fea !=nil {var _dae bool ;switch _fea .(type ){case *_fe .PdfColorspaceSpecialIndexed :_dae =true ;
|
|
};if _dae {if _cdd ,_bdb :=_fea .ImageToRGB (*_aff );_bdb !=nil {_cbc .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 {_aff =&_cdd ;};};};_aef :=_cdf .FillPattern ().ColorAt (0,0);var _faa _gb .Image ;if _egg .Mask !=nil {if _faa ,_bcd =_cab (_egg .Mask ,_aef );_bcd !=nil {_cbc .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 _edbb _gb .Image ;if _bgae ,_ :=_fb .GetBoolVal (_egg .ImageMask );_bgae {_edbb =_gfea (_aff ,_aef );}else {_edbb ,_bcd =_aff .ToGoImage ();if _bcd !=nil {return _bcd ;};};if _faa !=nil {_edbb =_dcf (_edbb ,_faa );};_gca :=_edbb .Bounds ();_cdf .Push ();
|
|
_cdf .Scale (1.0/float64 (_gca .Dx ()),-1.0/float64 (_gca .Dy ()));_cdf .DrawImageAnchored (_edbb ,0,0,0,1);_cdf .Pop ();case _fe .XObjectTypeForm :_cbc .Log .Debug ("\u0058\u004fb\u006a\u0065\u0063t\u0020\u0066\u006f\u0072\u006d\u003a\u0020\u0025\u0073",_fag .String ());
|
|
_bgfa ,_cgg :=_edb .GetXObjectFormByName (*_fag );if _cgg !=nil {return _cgg ;};_ccdc ,_cgg :=_bgfa .GetContentStream ();if _cgg !=nil {return _cgg ;};_dadd :=_bgfa .Resources ;if _dadd ==nil {_dadd =_edb ;};_cdf .Push ();if _bgfa .Matrix !=nil {_ddb ,_bde :=_fb .GetArray (_bgfa .Matrix );
|
|
if !_bde {return _dcd ;};_dgg ,_ffe :=_fb .GetNumbersAsFloat (_ddb .Elements ());if _ffe !=nil {return _ffe ;};if len (_dgg )!=6{return _ca ;};_gggd :=_ac .NewMatrix (_dgg [0],_dgg [1],_dgg [2],_dgg [3],_dgg [4],_dgg [5]);_cdf .SetMatrix (_cdf .Matrix ().Mult (_gggd ));
|
|
};if _bgfa .BBox !=nil {_cdc ,_bbgb :=_fb .GetArray (_bgfa .BBox );if !_bbgb {return _dcd ;};_cggg ,_ebb :=_fb .GetNumbersAsFloat (_cdc .Elements ());if _ebb !=nil {return _ebb ;};if len (_cggg )!=4{_cbc .Log .Debug ("\u004c\u0065\u006e\u0020\u003d\u0020\u0025\u0064",len (_cggg ));
|
|
return _ca ;};_cdf .DrawRectangle (_cggg [0],_cggg [1],_cggg [2]-_cggg [0],_cggg [3]-_cggg [1]);_cdf .SetRGBA (1,0,0,1);_cdf .Clip ();}else {_cbc .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");
|
|
};_cgg =_ece .renderContentStream (_cdf ,string (_ccdc ),_dadd );if _cgg !=nil {return _cgg ;};_cdf .Pop ();};case "\u0042\u0049":if len (_ecb .Params )!=1{return _ca ;};_fad ,_geg :=_ecb .Params [0].(*_gf .ContentStreamInlineImage );if !_geg {return nil ;
|
|
};_cgb ,_cce :=_fad .ToImage (_edb );if _cce !=nil {return _cce ;};_gee ,_cce :=_cgb .ToGoImage ();if _cce !=nil {return _cce ;};_bacf :=_gee .Bounds ();_cdf .Push ();_cdf .Scale (1.0/float64 (_bacf .Dx ()),-1.0/float64 (_bacf .Dy ()));_cdf .DrawImageAnchored (_gee ,0,0,0,1);
|
|
_cdf .Pop ();case "\u0042\u0054":_gbg .Reset ();case "\u0045\u0054":_gbg .Reset ();case "\u0054\u0072":if len (_ecb .Params )!=1{return _ca ;};_cfg ,_bfd :=_fb .GetNumberAsFloat (_ecb .Params [0]);if _bfd !=nil {return _bfd ;};_gbg .Tr =_ad .TextRenderingMode (_cfg );
|
|
case "\u0054\u004c":if len (_ecb .Params )!=1{return _ca ;};_ga ,_egfb :=_fb .GetNumberAsFloat (_ecb .Params [0]);if _egfb !=nil {return _egfb ;};_gbg .Tl =_ga ;case "\u0054\u0063":if len (_ecb .Params )!=1{return _ca ;};_dcgb ,_bfg :=_fb .GetNumberAsFloat (_ecb .Params [0]);
|
|
if _bfg !=nil {return _bfg ;};_cbc .Log .Debug ("\u0054\u0063\u003a\u0020\u0025\u0076",_dcgb );_gbg .Tc =_dcgb ;case "\u0054\u0077":if len (_ecb .Params )!=1{return _ca ;};_ccb ,_adf :=_fb .GetNumberAsFloat (_ecb .Params [0]);if _adf !=nil {return _adf ;
|
|
};_cbc .Log .Debug ("\u0054\u0077\u003a\u0020\u0025\u0076",_ccb );_gbg .Tw =_ccb ;case "\u0054\u007a":if len (_ecb .Params )!=1{return _ca ;};_eab ,_ecg :=_fb .GetNumberAsFloat (_ecb .Params [0]);if _ecg !=nil {return _ecg ;};_gbg .Th =_eab ;case "\u0054\u0073":if len (_ecb .Params )!=1{return _ca ;
|
|
};_bbdd ,_ggad :=_fb .GetNumberAsFloat (_ecb .Params [0]);if _ggad !=nil {return _ggad ;};_gbg .Ts =_bbdd ;case "\u0054\u0064":if len (_ecb .Params )!=2{return _ca ;};_ccdg ,_dab :=_fb .GetNumbersAsFloat (_ecb .Params );if _dab !=nil {return _dab ;};_cbc .Log .Debug ("\u0054\u0064\u003a\u0020\u0025\u0076",_ccdg );
|
|
_gbg .ProcTd (_ccdg [0],_ccdg [1]);case "\u0054\u0044":if len (_ecb .Params )!=2{return _ca ;};_dcdc ,_dgc :=_fb .GetNumbersAsFloat (_ecb .Params );if _dgc !=nil {return _dgc ;};_cbc .Log .Debug ("\u0054\u0044\u003a\u0020\u0025\u0076",_dcdc );_gbg .ProcTD (_dcdc [0],_dcdc [1]);
|
|
case "\u0054\u002a":_gbg .ProcTStar ();case "\u0054\u006d":if len (_ecb .Params )!=6{return _ca ;};_feaf ,_add :=_fb .GetNumbersAsFloat (_ecb .Params );if _add !=nil {return _add ;};_cbc .Log .Debug ("\u0054\u0065x\u0074\u0020\u006da\u0074\u0072\u0069\u0078\u003a\u0020\u0025\u002b\u0076",_feaf );
|
|
_gbg .ProcTm (_feaf [0],_feaf [1],_feaf [2],_feaf [3],_feaf [4],_feaf [5]);case "\u0027":if len (_ecb .Params )!=1{return _ca ;};_eec ,_dfb :=_fb .GetStringBytes (_ecb .Params [0]);if !_dfb {return _dcd ;};_cbc .Log .Debug ("\u0027\u0020\u0073t\u0072\u0069\u006e\u0067\u003a\u0020\u0025\u0073",string (_eec ));
|
|
_gbg .ProcQ (_eec ,_cdf );case "\u0022":if len (_ecb .Params )!=3{return _ca ;};_cda ,_aed :=_fb .GetNumberAsFloat (_ecb .Params [0]);if _aed !=nil {return _aed ;};_dcef ,_aed :=_fb .GetNumberAsFloat (_ecb .Params [1]);if _aed !=nil {return _aed ;};_ecgb ,_fbdf :=_fb .GetStringBytes (_ecb .Params [2]);
|
|
if !_fbdf {return _dcd ;};_gbg .ProcDQ (_ecgb ,_cda ,_dcef ,_cdf );case "\u0054\u006a":if len (_ecb .Params )!=1{return _ca ;};_cbcg ,_cbae :=_fb .GetStringBytes (_ecb .Params [0]);if !_cbae {return _dcd ;};_cbc .Log .Debug ("\u0054j\u0020s\u0074\u0072\u0069\u006e\u0067\u003a\u0020\u0060\u0025\u0073\u0060",string (_cbcg ));
|
|
_gbg .ProcTj (_cbcg ,_cdf );case "\u0054\u004a":if len (_ecb .Params )!=1{return _ca ;};_bfa ,_ecgg :=_fb .GetArray (_ecb .Params [0]);if !_ecgg {_cbc .Log .Debug ("\u0054\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_bfa );return _dcd ;};_cbc .Log .Debug ("\u0054\u004a\u0020\u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u002b\u0076",_bfa );
|
|
for _ ,_dda :=range _bfa .Elements (){switch _agg :=_dda .(type ){case *_fb .PdfObjectString :if _agg !=nil {_gbg .ProcTj (_agg .Bytes (),_cdf );};case *_fb .PdfObjectFloat ,*_fb .PdfObjectInteger :_affe ,_ecd :=_fb .GetNumberAsFloat (_agg );if _ecd ==nil {_gbg .Translate (-_affe *0.001*_gbg .Tf .Size *_gbg .Th /100.0,0);
|
|
};};};case "\u0054\u0066":if len (_ecb .Params )!=2{return _ca ;};_cbc .Log .Debug ("\u0025\u0023\u0076",_ecb .Params );_ccbg ,_fff :=_fb .GetName (_ecb .Params [0]);if !_fff ||_ccbg ==nil {_cbc .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",_ecb .Params [0]);
|
|
return _dcd ;};_cbc .Log .Debug ("\u0046\u006f\u006e\u0074\u0020\u006e\u0061\u006d\u0065\u003a\u0020\u0025\u0073",_ccbg .String ());_feb ,_ceea :=_fb .GetNumberAsFloat (_ecb .Params [1]);if _ceea !=nil {_cbc .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",_ecb .Params [1]);
|
|
return _dcd ;};_cbc .Log .Debug ("\u0046\u006f\u006e\u0074\u0020\u0073\u0069\u007a\u0065\u003a\u0020\u0025\u0076",_feb );_bceb ,_gffa :=_edb .GetFontByName (*_ccbg );if !_gffa {_cbc .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0046\u006f\u006e\u0074\u0020\u0025s\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064",_ccbg .String ());
|
|
return _gg .New ("\u0066\u006f\u006e\u0074\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};_cbc .Log .Debug ("\u0046\u006f\u006e\u0074\u003a\u0020\u0025\u0054",_bceb );_bdae ,_fff :=_fb .GetDict (_bceb );if !_fff {_cbc .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 _dcd ;};_de ,_ceea :=_fe .NewPdfFontFromPdfObject (_bdae );if _ceea !=nil {_cbc .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 _ceea ;};_fca :=_de .BaseFont ();if _fca ==""{_fca =_ccbg .String ();};_dbc ,_fff :=_bdc [_fca ];if !_fff {_dbc ,_ceea =_ad .NewTextFont (_de ,_feb );if _ceea !=nil {_cbc .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_ceea );};};if _dbc ==nil {if len (_fca )> 7&&_fca [6]=='+'{_fca =_fca [7:];
|
|
};_cbcgd :=[]string {_fca ,"\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 _ ,_cecg :=range _cbcgd {_cbc .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",_cecg );
|
|
if _dbc ,_fff =_bdc [_cecg ];_fff {break ;};_dggb :=_cca .Match (_cecg );if _dggb ==nil {_cbc .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",_cecg );
|
|
continue ;};_dbc ,_ceea =_ad .NewTextFontFromPath (_dggb .Filename ,_feb );if _ceea !=nil {_cbc .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",_dggb .Filename );
|
|
continue ;};_cbc .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",_fca ,_dggb .Name ,_dggb .Filename );
|
|
_bdc [_cecg ]=_dbc ;break ;};};if _dbc ==nil {_cbc .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 _gg .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");};_gbg .ProcTf (_dbc .WithSize (_feb ,_de ));case "\u0042\u004d\u0043","\u0042\u0044\u0043":case "\u0045\u004d\u0043":default:_cbc .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",_ecb .Operand );
|
|
};return nil ;});_fgg =_ed .Process (_faf );if _fgg !=nil {return _fgg ;};return nil ;};func _dcf (_ege ,_aedf _gb .Image )_gb .Image {_cae ,_fgc :=_aedf .Bounds ().Size (),_ege .Bounds ().Size ();_afa ,_fage :=_cae .X ,_cae .Y ;if _fgc .X > _afa {_afa =_fgc .X ;
|
|
};if _fgc .Y > _fage {_fage =_fgc .Y ;};_ebfg :=_gb .Rect (0,0,_afa ,_fage );if _cae .X !=_afa ||_cae .Y !=_fage {_bacb :=_gb .NewRGBA (_ebfg );_eb .BiLinear .Scale (_bacb ,_ebfg ,_ege ,_aedf .Bounds (),_eb .Over ,nil );_aedf =_bacb ;};if _fgc .X !=_afa ||_fgc .Y !=_fage {_dbcd :=_gb .NewRGBA (_ebfg );
|
|
_eb .BiLinear .Scale (_dbcd ,_ebfg ,_ege ,_ege .Bounds (),_eb .Over ,nil );_ege =_dbcd ;};_acb :=_gb .NewRGBA (_ebfg );_eb .DrawMask (_acb ,_ebfg ,_ege ,_gb .Point {},_aedf ,_gb .Point {},_eb .Over );return _acb ;};
|
|
|
|
// Render converts the specified PDF page into an image and returns the result.
|
|
func (_efg *ImageDevice )Render (page *_fe .PdfPage )(_gb .Image ,error ){_ae ,_ag :=page .GetMediaBox ();if _ag !=nil {return nil ,_ag ;};_ae .Normalize ();_dc :=page .CropBox ;var _acc ,_bb float64 ;if _dc !=nil {_dc .Normalize ();_acc ,_bb =_dc .Width (),_dc .Height ();
|
|
};_ea :=page .Rotate ;_agd ,_ge ,_be ,_cbcc :=_ae .Llx ,_ae .Lly ,_ae .Width (),_ae .Height ();_ff :=_ac .IdentityMatrix ();if _ea !=nil &&*_ea %360!=0&&*_ea %90==0{_bbd :=-float64 (*_ea );_bbg :=_dggc (_be ,_cbcc ,_bbd );_ff =_ff .Translate ((_bbg .Width -_be )/2+_be /2,(_bbg .Height -_cbcc )/2+_cbcc /2).Rotate (_bbd *_ef .Pi /180).Translate (-_be /2,-_cbcc /2);
|
|
_be ,_cbcc =_bbg .Width ,_bbg .Height ;if _dc !=nil {_ec :=_dggc (_acc ,_bb ,_bbd );_acc ,_bb =_ec .Width ,_ec .Height ;};};if _agd !=0||_ge !=0{_ff =_ff .Translate (-_agd ,-_ge );};_efg ._bea =1.0;if _efg .OutputWidth !=0{_ce :=_be ;if _dc !=nil {_ce =_acc ;
|
|
};_efg ._bea =float64 (_efg .OutputWidth )/_ce ;_be ,_cbcc ,_acc ,_bb =_be *_efg ._bea ,_cbcc *_efg ._bea ,_acc *_efg ._bea ,_bb *_efg ._bea ;_ff =_ac .ScaleMatrix (_efg ._bea ,_efg ._bea ).Mult (_ff );};_ggf :=_ba .NewContext (int (_be ),int (_cbcc ));
|
|
if _dd :=_efg .renderPage (_ggf ,page ,_ff );_dd !=nil {return nil ,_dd ;};_baa :=_ggf .Image ();if _dc !=nil {_bc ,_cc :=(_dc .Llx -_agd )*_efg ._bea ,(_dc .Lly -_ge )*_efg ._bea ;_aa :=_gb .Rect (0,0,int (_acc ),int (_bb ));_aae :=_gb .Pt (int (_bc ),int (_cbcc -_cc -_bb ));
|
|
_bbc :=_gb .NewRGBA (_aa );_c .Draw (_bbc ,_aa ,_baa ,_aae ,_c .Src );_baa =_bbc ;};return _baa ,nil ;};func _dggc (_ceg ,_dgfa ,_bfcc float64 )_b .BoundingBox {return _b .Path {Points :[]_b .Point {_b .NewPoint (0,0).Rotate (_bfcc ),_b .NewPoint (_ceg ,0).Rotate (_bfcc ),_b .NewPoint (0,_dgfa ).Rotate (_bfcc ),_b .NewPoint (_ceg ,_dgfa ).Rotate (_bfcc )}}.GetBoundingBox ();
|
|
};func _cab (_dfa _fb .PdfObject ,_gaa _ee .Color )(_gb .Image ,error ){_ddf ,_dgf :=_fb .GetStream (_dfa );if !_dgf {return nil ,nil ;};_cea ,_aeff :=_fe .NewXObjectImageFromStream (_ddf );if _aeff !=nil {return nil ,_aeff ;};_bfc ,_aeff :=_cea .ToImage ();
|
|
if _aeff !=nil {return nil ,_aeff ;};return _gfea (_bfc ,_gaa ),nil ;}; |