mirror of
https://github.com/unidoc/unipdf.git
synced 2025-04-24 13:48:49 +08:00
25 lines
34 KiB
Go
25 lines
34 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 (_b "errors";_ce "fmt";_fg "github.com/adrg/sysfont";_gb "github.com/unidoc/unipdf/v3/common";_d "github.com/unidoc/unipdf/v3/contentstream";_f "github.com/unidoc/unipdf/v3/core";_g "github.com/unidoc/unipdf/v3/internal/license";_ca "github.com/unidoc/unipdf/v3/internal/transform";_cag "github.com/unidoc/unipdf/v3/model";_db "github.com/unidoc/unipdf/v3/render/internal/context";_bg "github.com/unidoc/unipdf/v3/render/internal/context/imagerender";_eb "image";_e "image/color";_bd "image/draw";_ac "image/jpeg";_cfb "image/png";_ab "os";_cf "path/filepath";_c "strings";);func (_de renderer )renderContentStream (_gcd _db .Context ,_afd string ,_fa *_cag .PdfPageResources )error {_fga ,_dd :=_d .NewContentStreamParser (_afd ).Parse ();if _dd !=nil {return _dd ;};_gab :=_gcd .TextState ();_dac :=map[string ]*_db .TextFont {};_gg :=_fg .NewFinder (&_fg .FinderOpts {Extensions :[]string {"\u002e\u0074\u0074\u0066","\u002e\u0074\u0074\u0063"}});_be :=_d .NewContentStreamProcessor (*_fga );_be .AddHandler (_d .HandlerConditionEnumAllOperands ,"",func (_df *_d .ContentStreamOperation ,_eaa _d .GraphicsState ,_cb *_cag .PdfPageResources )error {_gb .Log .Debug ("\u0050\u0072\u006f\u0063\u0065\u0073\u0073\u0069\u006e\u0067\u0020\u0025\u0073",_df .Operand );switch _df .Operand {case "\u0071":_gcd .Push ();case "\u0051":_gcd .Pop ();case "\u0063\u006d":if len (_df .Params )!=6{return _bc ;};_ae ,_gbb :=_f .GetNumbersAsFloat (_df .Params );if _gbb !=nil {return _gbb ;};_cg :=_ca .NewMatrix (_ae [0],_ae [1],_ae [2],_ae [3],_ae [4],_ae [5]);_gb .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",_cg );_gcd .SetMatrix (_gcd .Matrix ().Mult (_cg ));_cgd :=(_eaa .CTM .ScalingFactorX ()+_eaa .CTM .ScalingFactorY ())/2.0;_gcd .SetLineWidth (_cgd *_gcd .LineWidth ());case "\u0077":if len (_df .Params )!=1{return _bc ;};_bbg ,_ggg :=_f .GetNumbersAsFloat (_df .Params );if _ggg !=nil {return _ggg ;};_bdd :=(_eaa .CTM .ScalingFactorX ()+_eaa .CTM .ScalingFactorY ())/2.0;_gcd .SetLineWidth (_bdd *_bbg [0]);case "\u004a":if len (_df .Params )!=1{return _bc ;};_aee ,_bcb :=_f .GetIntVal (_df .Params [0]);if !_bcb {return _abg ;};switch _aee {case 0:_gcd .SetLineCap (_db .LineCapButt );case 1:_gcd .SetLineCap (_db .LineCapRound );case 2:_gcd .SetLineCap (_db .LineCapSquare );default:_gb .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",_aee );return _bc ;};case "\u006a":if len (_df .Params )!=1{return _bc ;};_ad ,_bcc :=_f .GetIntVal (_df .Params [0]);if !_bcc {return _abg ;};switch _ad {case 0:_gcd .SetLineJoin (_db .LineJoinBevel );case 1:_gcd .SetLineJoin (_db .LineJoinRound );case 2:_gcd .SetLineJoin (_db .LineJoinBevel );default:_gb .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",_ad );return _bc ;};case "\u004d":if len (_df .Params )!=1{return _bc ;};_acc ,_cgg :=_f .GetNumbersAsFloat (_df .Params );if _cgg !=nil {return _cgg ;};_ =_acc ;_gb .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 (_df .Params )!=2{return _bc ;};_ceg ,_dc :=_f .GetArray (_df .Params [0]);if !_dc {return _abg ;};_dgf ,_dc :=_f .GetIntVal (_df .Params [1]);if !_dc {return _abg ;};_gf ,_gd :=_f .GetNumbersAsFloat (_ceg .Elements ());if _gd !=nil {return _gd ;};_gcd .SetDash (_gf ...);_ =_dgf ;_gb .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":_gb .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":_gb .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 (_df .Params )!=1{return _bc ;};_dcc ,_bgf :=_f .GetName (_df .Params [0]);if !_bgf {return _abg ;};if _dcc ==nil {return _bc ;};_ed ,_bgf :=_cb .GetExtGState (*_dcc );if !_bgf {_gb .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",*_dcc );return _b .New ("\u0072e\u0073o\u0075\u0072\u0063\u0065\u0020n\u006f\u0074 \u0066\u006f\u0075\u006e\u0064");};_eaab ,_bgf :=_f .GetDict (_ed );if !_bgf {_gb .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 _abg ;};_gb .Log .Debug ("G\u0053\u0020\u0064\u0069\u0063\u0074\u003a\u0020\u0025\u0073",_eaab .String ());case "\u006d":if len (_df .Params )!=2{_gb .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",_bc );return nil ;};_bge ,_fdb :=_f .GetNumbersAsFloat (_df .Params );if _fdb !=nil {return _fdb ;};_gb .Log .Debug ("M\u006f\u0076\u0065\u0020\u0074\u006f\u003a\u0020\u0025\u0076",_bge );_gcd .NewSubPath ();_gcd .MoveTo (_bge [0],_bge [1]);case "\u006c":if len (_df .Params )!=2{_gb .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",_bc );return nil ;};_ddc ,_dccf :=_f .GetNumbersAsFloat (_df .Params );if _dccf !=nil {return _dccf ;};_gcd .LineTo (_ddc [0],_ddc [1]);case "\u0063":if len (_df .Params )!=6{return _bc ;};_ggd ,_acef :=_f .GetNumbersAsFloat (_df .Params );if _acef !=nil {return _acef ;};_gb .Log .Debug ("\u0043u\u0062\u0069\u0063\u0020\u0062\u0065\u007a\u0069\u0065\u0072\u0020p\u0061\u0072\u0061\u006d\u0073\u003a\u0020\u0025\u002b\u0076",_ggd );_gcd .CubicTo (_ggd [0],_ggd [1],_ggd [2],_ggd [3],_ggd [4],_ggd [5]);case "\u0076","\u0079":if len (_df .Params )!=4{return _bc ;};_dba ,_bcf :=_f .GetNumbersAsFloat (_df .Params );if _bcf !=nil {return _bcf ;};_gb .Log .Debug ("\u0043u\u0062\u0069\u0063\u0020\u0062\u0065\u007a\u0069\u0065\u0072\u0020p\u0061\u0072\u0061\u006d\u0073\u003a\u0020\u0025\u002b\u0076",_dba );_gcd .QuadraticTo (_dba [0],_dba [1],_dba [2],_dba [3]);case "\u0068":_gcd .ClosePath ();_gcd .NewSubPath ();case "\u0072\u0065":if len (_df .Params )!=4{return _bc ;};_dbc ,_cdf :=_f .GetNumbersAsFloat (_df .Params );if _cdf !=nil {return _cdf ;};_gcd .DrawRectangle (_dbc [0],_dbc [1],_dbc [2],_dbc [3]);_gcd .NewSubPath ();case "\u0053":_fe ,_abe :=_eaa .ColorspaceStroking .ColorToRGB (_eaa .ColorStroking );if _abe !=nil {_gb .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",_abe );return _abe ;};_bea ,_dga :=_fe .(*_cag .PdfColorDeviceRGB );if !_dga {_gb .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _abe ;};_gcd .SetRGBA (_bea .R (),_bea .G (),_bea .B (),1);_gcd .Stroke ();case "\u0073":_ag ,_aac :=_eaa .ColorspaceStroking .ColorToRGB (_eaa .ColorStroking );if _aac !=nil {_gb .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",_aac );return _aac ;};_ece ,_cgf :=_ag .(*_cag .PdfColorDeviceRGB );if !_cgf {_gb .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _aac ;};_gcd .ClosePath ();_gcd .NewSubPath ();_gcd .SetRGBA (_ece .R (),_ece .G (),_ece .B (),1);_gcd .Stroke ();case "\u0066","\u0046":_ee ,_ddf :=_eaa .ColorspaceNonStroking .ColorToRGB (_eaa .ColorNonStroking );if _ddf !=nil {_gb .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",_ddf );return _ddf ;};_gabe ,_beaa :=_ee .(*_cag .PdfColorDeviceRGB );if !_beaa {_gb .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _ddf ;};_gcd .SetRGBA (_gabe .R (),_gabe .G (),_gabe .B (),1);_gcd .SetFillRule (_db .FillRuleWinding );_gcd .Fill ();case "\u0066\u002a":_eee ,_cca :=_eaa .ColorspaceNonStroking .ColorToRGB (_eaa .ColorNonStroking );if _cca !=nil {_gb .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",_cca );return _cca ;};_cfe ,_cdd :=_eee .(*_cag .PdfColorDeviceRGB );if !_cdd {_gb .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _cca ;};_gcd .SetRGBA (_cfe .R (),_cfe .G (),_cfe .B (),1);_gcd .SetFillRule (_db .FillRuleEvenOdd );_gcd .Fill ();case "\u0042":_ccab ,_dab :=_eaa .ColorspaceNonStroking .ColorToRGB (_eaa .ColorNonStroking );if _dab !=nil {_gb .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",_dab );return _dab ;};_ge :=_ccab .(*_cag .PdfColorDeviceRGB );_gcd .SetRGBA (_ge .R (),_ge .G (),_ge .B (),1);_gcd .SetFillRule (_db .FillRuleWinding );_gcd .FillPreserve ();_ccab ,_dab =_eaa .ColorspaceStroking .ColorToRGB (_eaa .ColorStroking );if _dab !=nil {_gb .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",_dab );return _dab ;};_ge =_ccab .(*_cag .PdfColorDeviceRGB );_gcd .SetRGBA (_ge .R (),_ge .G (),_ge .B (),1);_gcd .Stroke ();case "\u0042\u002a":_ccc ,_cfa :=_eaa .ColorspaceNonStroking .ColorToRGB (_eaa .ColorNonStroking );if _cfa !=nil {_gb .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",_cfa );return _cfa ;};_gde :=_ccc .(*_cag .PdfColorDeviceRGB );_gcd .SetRGBA (_gde .R (),_gde .G (),_gde .B (),1);_gcd .SetFillRule (_db .FillRuleEvenOdd );_gcd .FillPreserve ();_ccc ,_cfa =_eaa .ColorspaceStroking .ColorToRGB (_eaa .ColorStroking );if _cfa !=nil {_gb .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",_cfa );return _cfa ;};_gde =_ccc .(*_cag .PdfColorDeviceRGB );_gcd .SetRGBA (_gde .R (),_gde .G (),_gde .B (),1);_gcd .Stroke ();case "\u0062":_bgb ,_aad :=_eaa .ColorspaceNonStroking .ColorToRGB (_eaa .ColorNonStroking );if _aad !=nil {_gb .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",_aad );return _aad ;};_fgab :=_bgb .(*_cag .PdfColorDeviceRGB );_gcd .SetRGBA (_fgab .R (),_fgab .G (),_fgab .B (),1);_gcd .ClosePath ();_gcd .NewSubPath ();_gcd .SetFillRule (_db .FillRuleWinding );_gcd .FillPreserve ();_bgb ,_aad =_eaa .ColorspaceStroking .ColorToRGB (_eaa .ColorStroking );if _aad !=nil {_gb .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",_aad );return _aad ;};_fgab =_bgb .(*_cag .PdfColorDeviceRGB );_gcd .SetRGBA (_fgab .R (),_fgab .G (),_fgab .B (),1);_gcd .Stroke ();case "\u0062\u002a":_gcd .ClosePath ();_cccg ,_cae :=_eaa .ColorspaceNonStroking .ColorToRGB (_eaa .ColorNonStroking );if _cae !=nil {_gb .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",_cae );return _cae ;};_cggc :=_cccg .(*_cag .PdfColorDeviceRGB );_gcd .SetRGBA (_cggc .R (),_cggc .G (),_cggc .B (),1);_gcd .NewSubPath ();_gcd .SetFillRule (_db .FillRuleEvenOdd );_gcd .FillPreserve ();_cccg ,_cae =_eaa .ColorspaceStroking .ColorToRGB (_eaa .ColorStroking );if _cae !=nil {_gb .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",_cae );return _cae ;};_cggc =_cccg .(*_cag .PdfColorDeviceRGB );_gcd .SetRGBA (_cggc .R (),_cggc .G (),_cggc .B (),1);_gcd .Stroke ();case "\u006e":_gcd .ClearPath ();case "\u0057":_gcd .SetFillRule (_db .FillRuleWinding );_gcd .ClipPreserve ();case "\u0057\u002a":_gcd .SetFillRule (_db .FillRuleEvenOdd );_gcd .ClipPreserve ();case "\u0072\u0067":_ade ,_afg :=_eaa .ColorNonStroking .(*_cag .PdfColorDeviceRGB );if !_afg {_gb .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",_eaa .ColorNonStroking );return nil ;};_gcd .SetFillRGBA (_ade .R (),_ade .G (),_ade .B (),1);case "\u0052\u0047":_eca ,_deb :=_eaa .ColorStroking .(*_cag .PdfColorDeviceRGB );if !_deb {_gb .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",_eaa .ColorStroking );return nil ;};_gcd .SetStrokeRGBA (_eca .R (),_eca .G (),_eca .B (),1);case "\u006b":_bf ,_abga :=_eaa .ColorNonStroking .(*_cag .PdfColorDeviceCMYK );if !_abga {_gb .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",_eaa .ColorNonStroking );return nil ;};_ega ,_cga :=_eaa .ColorspaceNonStroking .ColorToRGB (_bf );if _cga !=nil {_gb .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",_eaa .ColorNonStroking );return nil ;};_acf ,_abga :=_ega .(*_cag .PdfColorDeviceRGB );if !_abga {_gb .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",_ega );return nil ;};_gcd .SetFillRGBA (_acf .R (),_acf .G (),_acf .B (),1);case "\u004b":_gcc ,_agg :=_eaa .ColorStroking .(*_cag .PdfColorDeviceCMYK );if !_agg {_gb .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",_eaa .ColorStroking );return nil ;};_adf ,_egg :=_eaa .ColorspaceStroking .ColorToRGB (_gcc );if _egg !=nil {_gb .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",_eaa .ColorStroking );return nil ;};_gdg ,_agg :=_adf .(*_cag .PdfColorDeviceRGB );if !_agg {_gb .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",_adf );return nil ;};_gcd .SetStrokeRGBA (_gdg .R (),_gdg .G (),_gdg .B (),1);case "\u0067":_egf ,_aeeg :=_eaa .ColorNonStroking .(*_cag .PdfColorDeviceGray );if !_aeeg {_gb .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",_eaa .ColorNonStroking );return nil ;};_fcd ,_ddg :=_eaa .ColorspaceNonStroking .ColorToRGB (_egf );if _ddg !=nil {_gb .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",_eaa .ColorNonStroking );return nil ;};_cef ,_aeeg :=_fcd .(*_cag .PdfColorDeviceRGB );if !_aeeg {_gb .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 nil ;};_gcd .SetFillRGBA (_cef .R (),_cef .G (),_cef .B (),1);case "\u0047":_bbe ,_ff :=_eaa .ColorStroking .(*_cag .PdfColorDeviceGray );if !_ff {_gb .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",_eaa .ColorStroking );return nil ;};_cee ,_fef :=_eaa .ColorspaceStroking .ColorToRGB (_bbe );if _fef !=nil {_gb .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",_eaa .ColorStroking );return nil ;};_dag ,_ff :=_cee .(*_cag .PdfColorDeviceRGB );if !_ff {_gb .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",_cee );return nil ;};_gcd .SetStrokeRGBA (_dag .R (),_dag .G (),_dag .B (),1);case "\u0063\u0073","\u0073\u0063","\u0073\u0063\u006e":_cbg ,_eae :=_eaa .ColorspaceNonStroking .ColorToRGB (_eaa .ColorNonStroking );if _eae !=nil {_gb .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",_eaa .ColorNonStroking );return nil ;};_eag ,_dbcb :=_cbg .(*_cag .PdfColorDeviceRGB );if !_dbcb {_gb .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",_cbg );return nil ;};_gcd .SetFillRGBA (_eag .R (),_eag .G (),_eag .B (),1);case "\u0043\u0053","\u0053\u0043","\u0053\u0043\u004e":_cfc ,_gcf :=_eaa .ColorspaceStroking .ColorToRGB (_eaa .ColorStroking );if _gcf !=nil {_gb .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",_eaa .ColorStroking );return nil ;};_fdf ,_bfb :=_cfc .(*_cag .PdfColorDeviceRGB );if !_bfb {_gb .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 nil ;};_gcd .SetStrokeRGBA (_fdf .R (),_fdf .G (),_fdf .B (),1);case "\u0044\u006f":if len (_df .Params )!=1{return _bc ;};_eeg ,_bed :=_f .GetName (_df .Params [0]);if !_bed {return _abg ;};_ ,_aga :=_cb .GetXObjectByName (*_eeg );switch _aga {case _cag .XObjectTypeImage :_gb .Log .Debug ("\u0058\u004f\u0062\u006a\u0065\u0063\u0074\u0020\u0069\u006d\u0061\u0067e\u003a\u0020\u0025\u0073",_eeg .String ());_fdd ,_gfc :=_cb .GetXObjectImageByName (*_eeg );if _gfc !=nil {return _gfc ;};_gbbc ,_gfc :=_fdd .ToImage ();if _gfc !=nil {return _gfc ;};_bab ,_ :=_f .GetBoolVal (_fdd .ImageMask );if _eeeb :=_fdd .ColorSpace ;_eeeb !=nil {var _bff bool ;switch _eeeb .(type ){case *_cag .PdfColorspaceSpecialIndexed :_bff =true ;case *_cag .PdfColorspaceDeviceGray :_bff =_bab ;};if _bff {if _fgb ,_cgb :=_eeeb .ImageToRGB (*_gbbc );_cgb !=nil {_gb .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 {_gbbc =&_fgb ;};};};var _bfbc _eb .Image ;if _bab {_bfbc =_aec (_gbbc ,_gcd .FillPattern ().ColorAt (0,0));}else {_bfbc ,_gfc =_gbbc .ToGoImage ();if _gfc !=nil {return _gfc ;};};_fgba :=_bfbc .Bounds ();_gcd .Push ();_gcd .Scale (1.0/float64 (_fgba .Dx ()),-1.0/float64 (_fgba .Dy ()));_gcd .DrawImageAnchored (_bfbc ,0,0,0,1);_gcd .Pop ();case _cag .XObjectTypeForm :_gb .Log .Debug ("\u0058\u004fb\u006a\u0065\u0063t\u0020\u0066\u006f\u0072\u006d\u003a\u0020\u0025\u0073",_eeg .String ());_egac ,_babd :=_cb .GetXObjectFormByName (*_eeg );if _babd !=nil {return _babd ;};_daa ,_babd :=_egac .GetContentStream ();if _babd !=nil {return _babd ;};_bgg :=_egac .Resources ;if _bgg ==nil {_bgg =_cb ;};_gcd .Push ();if _egac .Matrix !=nil {_dee ,_bfa :=_f .GetArray (_egac .Matrix );if !_bfa {return _abg ;};_bdf ,_gdb :=_f .GetNumbersAsFloat (_dee .Elements ());if _gdb !=nil {return _gdb ;};if len (_bdf )!=6{return _bc ;};_aba :=_ca .NewMatrix (_bdf [0],_bdf [1],_bdf [2],_bdf [3],_bdf [4],_bdf [5]);_gcd .SetMatrix (_gcd .Matrix ().Mult (_aba ));};if _egac .BBox !=nil {_aaa ,_fgg :=_f .GetArray (_egac .BBox );if !_fgg {return _abg ;};_cegf ,_fcg :=_f .GetNumbersAsFloat (_aaa .Elements ());if _fcg !=nil {return _fcg ;};if len (_cegf )!=4{_gb .Log .Debug ("\u004c\u0065\u006e\u0020\u003d\u0020\u0025\u0064",len (_cegf ));return _bc ;};_gcd .DrawRectangle (_cegf [0],_cegf [1],_cegf [2]-_cegf [0],_cegf [3]-_cegf [1]);_gcd .SetRGBA (1,0,0,1);_gcd .Clip ();}else {_gb .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");};_babd =_de .renderContentStream (_gcd ,string (_daa ),_bgg );if _babd !=nil {return _babd ;};_gcd .Pop ();};case "\u0042\u0049":if len (_df .Params )!=1{return _bc ;};_baf ,_ded :=_df .Params [0].(*_d .ContentStreamInlineImage );if !_ded {return nil ;};_ef ,_agf :=_baf .ToImage (_cb );if _agf !=nil {return _agf ;};_acfe ,_agf :=_ef .ToGoImage ();if _agf !=nil {return _agf ;};_edb :=_acfe .Bounds ();_gcd .Push ();_gcd .Scale (1.0/float64 (_edb .Dx ()),-1.0/float64 (_edb .Dy ()));_gcd .DrawImageAnchored (_acfe ,0,0,0,1);_gcd .Pop ();case "\u0042\u0054":_gab .Reset ();case "\u0045\u0054":_gab .Reset ();case "\u0054\u004c":if len (_df .Params )!=1{return _bc ;};_gea ,_bffb :=_f .GetNumberAsFloat (_df .Params [0]);if _bffb !=nil {return _bffb ;};_gab .Tl =_gea ;case "\u0054\u0063":if len (_df .Params )!=1{return _bc ;};_aace ,_ecc :=_f .GetNumberAsFloat (_df .Params [0]);if _ecc !=nil {return _ecc ;};_gb .Log .Debug ("\u0054\u0063\u003a\u0020\u0025\u0076",_aace );_gab .Tc =_aace ;case "\u0054\u0077":if len (_df .Params )!=1{return _bc ;};_ddga ,_caa :=_f .GetNumberAsFloat (_df .Params [0]);if _caa !=nil {return _caa ;};_gb .Log .Debug ("\u0054\u0077\u003a\u0020\u0025\u0076",_ddga );_gab .Tw =_ddga ;case "\u0054\u007a":if len (_df .Params )!=1{return _bc ;};_gcde ,_bacc :=_f .GetNumberAsFloat (_df .Params [0]);if _bacc !=nil {return _bacc ;};_gab .Th =_gcde ;case "\u0054\u0073":if len (_df .Params )!=1{return _bc ;};_cde ,_add :=_f .GetNumberAsFloat (_df .Params [0]);if _add !=nil {return _add ;};_gab .Ts =_cde ;case "\u0054\u0064":if len (_df .Params )!=2{return _bc ;};_bfd ,_bfag :=_f .GetNumbersAsFloat (_df .Params );if _bfag !=nil {return _bfag ;};_gb .Log .Debug ("\u0054\u0064\u003a\u0020\u0025\u0076",_bfd );_gab .ProcTd (_bfd [0],_bfd [1]);case "\u0054\u0044":if len (_df .Params )!=2{return _bc ;};_abf ,_eea :=_f .GetNumbersAsFloat (_df .Params );if _eea !=nil {return _eea ;};_gb .Log .Debug ("\u0054\u0044\u003a\u0020\u0025\u0076",_abf );_gab .ProcTD (_abf [0],_abf [1]);case "\u0054\u002a":_gab .ProcTStar ();case "\u0054\u006d":if len (_df .Params )!=6{return _bc ;};_abeg ,_gade :=_f .GetNumbersAsFloat (_df .Params );if _gade !=nil {return _gade ;};_gb .Log .Debug ("\u0054\u0065x\u0074\u0020\u006da\u0074\u0072\u0069\u0078\u003a\u0020\u0025\u002b\u0076",_abeg );_gab .ProcTm (_abeg [0],_abeg [1],_abeg [2],_abeg [3],_abeg [4],_abeg [5]);case "\u0027":if len (_df .Params )!=1{return _bc ;};_agd ,_cfec :=_f .GetStringBytes (_df .Params [0]);if !_cfec {return _abg ;};_gb .Log .Debug ("\u0027\u0020\u0073t\u0072\u0069\u006e\u0067\u003a\u0020\u0025\u0073",string (_agd ));_gab .ProcQ (_agd ,_gcd );case "\u0022":if len (_df .Params )!=3{return _bc ;};_bdg ,_dfe :=_f .GetNumberAsFloat (_df .Params [0]);if _dfe !=nil {return _dfe ;};_dcb ,_dfe :=_f .GetNumberAsFloat (_df .Params [1]);if _dfe !=nil {return _dfe ;};_fb ,_cff :=_f .GetStringBytes (_df .Params [2]);if !_cff {return _abg ;};_gab .ProcDQ (_fb ,_bdg ,_dcb ,_gcd );case "\u0054\u006a":if len (_df .Params )!=1{return _bc ;};_dfa ,_aef :=_f .GetStringBytes (_df .Params [0]);if !_aef {return _abg ;};_gb .Log .Debug ("\u0054j\u0020s\u0074\u0072\u0069\u006e\u0067\u003a\u0020\u0060\u0025\u0073\u0060",string (_dfa ));_gab .ProcTj (_dfa ,_gcd );case "\u0054\u004a":if len (_df .Params )!=1{return _bc ;};_gabf ,_bde :=_f .GetArray (_df .Params [0]);if !_bde {_gb .Log .Debug ("\u0054\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_gabf );return _abg ;};_gb .Log .Debug ("\u0054\u004a\u0020\u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u002b\u0076",_gabf );for _ ,_cab :=range _gabf .Elements (){switch _bdfa :=_cab .(type ){case *_f .PdfObjectString :if _bdfa !=nil {_gab .ProcTj (_bdfa .Bytes (),_gcd );};case *_f .PdfObjectFloat ,*_f .PdfObjectInteger :_gdf ,_edd :=_f .GetNumberAsFloat (_bdfa );if _edd ==nil {_gab .Translate (-_gdf *0.001*_gab .Tf .Size *_gab .Th /100.0,0);};};};case "\u0054\u0066":if len (_df .Params )!=2{return _bc ;};_gb .Log .Debug ("\u0025\u0023\u0076",_df .Params );_agac ,_dff :=_f .GetName (_df .Params [0]);if !_dff ||_agac ==nil {_gb .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",_df .Params [0]);return _abg ;};_gb .Log .Debug ("\u0046\u006f\u006e\u0074\u0020\u006e\u0061\u006d\u0065\u003a\u0020\u0025\u0073",_agac .String ());_egb ,_ccd :=_f .GetNumberAsFloat (_df .Params [1]);if _ccd !=nil {_gb .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",_df .Params [1]);return _abg ;};_gb .Log .Debug ("\u0046\u006f\u006e\u0074\u0020\u0073\u0069\u007a\u0065\u003a\u0020\u0025\u0076",_egb );_bcbc ,_dedd :=_cb .GetFontByName (*_agac );if !_dedd {_gb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0046\u006f\u006e\u0074\u0020\u0025s\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064",_agac .String ());return _b .New ("\u0066\u006f\u006e\u0074\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};_gb .Log .Debug ("\u0046\u006f\u006e\u0074\u003a\u0020\u0025\u0054",_bcbc );_eef ,_dff :=_f .GetDict (_bcbc );if !_dff {_gb .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 _abg ;};_bba ,_ccd :=_cag .NewPdfFontFromPdfObject (_eef );if _ccd !=nil {_gb .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 _ccd ;};_fdba :=_bba .BaseFont ();if _fdba ==""{_fdba =_agac .String ();};_acfg ,_dff :=_dac [_fdba ];if !_dff {_acfg ,_ccd =_db .NewTextFont (_bba ,_egb );if _ccd !=nil {_gb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_ccd );};};if _acfg ==nil {if len (_fdba )> 7&&_fdba [6]=='+'{_fdba =_fdba [7:];};_aeb :=[]string {_fdba ,"\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 _ ,_ccg :=range _aeb {_gb .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",_ccg );if _acfg ,_dff =_dac [_ccg ];_dff {break ;};_cbd :=_gg .Match (_ccg );if _cbd ==nil {_gb .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",_ccg );continue ;};_acfg ,_ccd =_db .NewTextFontFromPath (_cbd .Filename ,_egb );if _ccd !=nil {_gb .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",_cbd .Filename );continue ;};_gb .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",_fdba ,_cbd .Name ,_cbd .Filename );_dac [_ccg ]=_acfg ;break ;};};if _acfg ==nil {_gb .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");};_gab .ProcTf (_acfg .WithSize (_egb ,_bba ));case "\u0042\u004d\u0043","\u0042\u0044\u0043":case "\u0045\u004d\u0043":default:_gb .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",_df .Operand );};return nil ;});_dd =_be .Process (_fa );if _dd !=nil {return _dd ;};return nil ;};
|
|
|
|
// RenderToPath converts the specified PDF page into an image and saves the
|
|
// result at the specified location.
|
|
func (_af *ImageDevice )RenderToPath (page *_cag .PdfPage ,outputPath string )error {_eg ,_ace :=_af .Render (page );if _ace !=nil {return _ace ;};_dg :=_c .ToLower (_cf .Ext (outputPath ));if _dg ==""{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 _dg {case "\u002e\u0070\u006e\u0067":return _dfc (outputPath ,_eg );case "\u002e\u006a\u0070\u0067","\u002e\u006a\u0070e\u0067":return _dgab (outputPath ,_eg ,100);};return _ce .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",_dg );};
|
|
|
|
// ImageDevice is used to render PDF pages to image targets.
|
|
type ImageDevice struct{renderer };func (_bb renderer )renderPage (_da _db .Context ,_ec *_cag .PdfPage )error {_dad ,_aa :=_ec .GetAllContentStreams ();if _aa !=nil {return _aa ;};_da .Translate (0,float64 (_da .Height ()));_da .Scale (1,-1);_da .Push ();_da .SetRGBA (1,1,1,1);_da .DrawRectangle (0,0,float64 (_da .Width ()),float64 (_da .Height ()));_da .Fill ();_da .Pop ();_da .SetLineWidth (1.0);_da .SetRGBA (0,0,0,1);return _bb .renderContentStream (_da ,_dad ,_ec .Resources );};func _dgab (_gdd string ,_gga _eb .Image ,_ffg int )error {_cce ,_fac :=_ab .Create (_gdd );if _fac !=nil {return _fac ;};defer _cce .Close ();return _ac .Encode (_cce ,_gga ,&_ac .Options {Quality :_ffg });};type renderer struct{};func _dfc (_geg string ,_dgc _eb .Image )error {_fbd ,_dcg :=_ab .Create (_geg );if _dcg !=nil {return _dcg ;};defer _fbd .Close ();return _cfb .Encode (_fbd ,_dgc );};
|
|
|
|
// NewImageDevice returns a new image device.
|
|
func NewImageDevice ()*ImageDevice {const _eba ="r\u0065\u006e\u0064\u0065r.\u004ee\u0077\u0049\u006d\u0061\u0067e\u0044\u0065\u0076\u0069\u0063\u0065";_g .TrackUse (_eba );return &ImageDevice {};};var (_abg =_b .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");_bc =_b .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072"););func _aec (_fdc *_cag .Image ,_cge _e .Color )_eb .Image {_gee ,_gccg :=int (_fdc .Width ),int (_fdc .Height );_bbed :=_eb .NewRGBA (_eb .Rect (0,0,_gee ,_gccg ));for _fcca :=0;_fcca < _gccg ;_fcca ++{for _agfa :=0;_agfa < _gee ;_agfa ++{_ggac ,_eda :=_fdc .ColorAt (_agfa ,_fcca );if _eda !=nil {_gb .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",_agfa ,_fcca );continue ;};_gfb ,_gbe ,_efg ,_ :=_ggac .RGBA ();var _efb _e .Color ;if _gfb +_gbe +_efg ==0{_efb =_ggac ;}else {_efb =_e .Transparent ;};_bbed .Set (_agfa ,_fcca ,_efb );};};return _bbed ;};
|
|
|
|
// Render converts the specified PDF page into an image and returns the result.
|
|
func (_cd *ImageDevice )Render (page *_cag .PdfPage )(_eb .Image ,error ){_fc ,_cc :=page .GetMediaBox ();if _cc !=nil {return nil ,_cc ;};_ba ,_gc :=_fc .Llx +_fc .Width (),_fc .Lly +_fc .Height ();_bac :=_bg .NewContext (int (_ba ),int (_gc ));if _gce :=_cd .renderPage (_bac ,page );_gce !=nil {return nil ,_gce ;};_ga :=_bac .Image ();if _gad :=page .CropBox ;_gad !=nil {_ea :=_eb .Rect (0,0,int (_gad .Width ()),int (_gad .Height ()));_fcc :=_eb .Pt (int (_gad .Llx ),int (_gc -_gad .Ury ));_fd :=_eb .NewRGBA (_ea );_bd .Draw (_fd ,_ea ,_ga ,_fcc ,_bd .Src );_ga =_fd ;};return _ga ,nil ;}; |