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/
|
|
|
|
|
2021-04-23 20:28:14 +00:00
|
|
|
package render ;import (_c "errors";_cde "fmt";_ge "github.com/adrg/sysfont";_ea "github.com/unidoc/unipdf/v3/common";_ce "github.com/unidoc/unipdf/v3/contentstream";_bb "github.com/unidoc/unipdf/v3/contentstream/draw";_e "github.com/unidoc/unipdf/v3/core";
|
|
|
|
_cf "github.com/unidoc/unipdf/v3/internal/license";_d "github.com/unidoc/unipdf/v3/internal/transform";_gb "github.com/unidoc/unipdf/v3/model";_eaf "github.com/unidoc/unipdf/v3/render/internal/context";_eab "github.com/unidoc/unipdf/v3/render/internal/context/imagerender";
|
|
|
|
_ae "golang.org/x/image/draw";_be "image";_gc "image/color";_ad "image/draw";_b "image/jpeg";_cd "image/png";_a "math";_cc "os";_cg "path/filepath";_ca "strings";);func _cbda (_aaed string ,_gbb _be .Image )error {_gcbe ,_cdf :=_cc .Create (_aaed );if _cdf !=nil {return _cdf ;
|
|
|
|
};defer _gcbe .Close ();return _cd .Encode (_gcbe ,_gbb );};func (_af renderer )renderContentStream (_ade _eaf .Context ,_df string ,_eag *_gb .PdfPageResources )error {_bc ,_db :=_ce .NewContentStreamParser (_df ).Parse ();if _db !=nil {return _db ;};
|
|
|
|
_gg :=_ade .TextState ();_gg .GlobalScale =_af ._bbcf ;_eg :=map[string ]*_eaf .TextFont {};_fc :=_ge .NewFinder (&_ge .FinderOpts {Extensions :[]string {"\u002e\u0074\u0074\u0066","\u002e\u0074\u0074\u0063"}});_ag :=_ce .NewContentStreamProcessor (*_bc );
|
|
|
|
_ag .AddHandler (_ce .HandlerConditionEnumAllOperands ,"",func (_dag *_ce .ContentStreamOperation ,_daa _ce .GraphicsState ,_fecb *_gb .PdfPageResources )error {_ea .Log .Debug ("\u0050\u0072\u006f\u0063\u0065\u0073\u0073\u0069\u006e\u0067\u0020\u0025\u0073",_dag .Operand );
|
|
|
|
switch _dag .Operand {case "\u0071":_ade .Push ();case "\u0051":_ade .Pop ();_gg =_ade .TextState ();case "\u0063\u006d":if len (_dag .Params )!=6{return _ee ;};_aag ,_cea :=_e .GetNumbersAsFloat (_dag .Params );if _cea !=nil {return _cea ;};_fdcd :=_d .NewMatrix (_aag [0],_aag [1],_aag [2],_aag [3],_aag [4],_aag [5]);
|
|
|
|
_ea .Log .Debug ("\u0047\u0072\u0061\u0070\u0068\u0069\u0063\u0073\u0020\u0073\u0074a\u0074\u0065\u0020\u006d\u0061\u0074\u0072\u0069\u0078\u003a \u0025\u002b\u0076",_fdcd );_ade .SetMatrix (_ade .Matrix ().Mult (_fdcd ));case "\u0077":if len (_dag .Params )!=1{return _ee ;
|
|
|
|
};_ec ,_agc :=_e .GetNumbersAsFloat (_dag .Params );if _agc !=nil {return _agc ;};_ade .SetLineWidth (_ec [0]);case "\u004a":if len (_dag .Params )!=1{return _ee ;};_ddf ,_ed :=_e .GetIntVal (_dag .Params [0]);if !_ed {return _fec ;};switch _ddf {case 0:_ade .SetLineCap (_eaf .LineCapButt );
|
|
|
|
case 1:_ade .SetLineCap (_eaf .LineCapRound );case 2:_ade .SetLineCap (_eaf .LineCapSquare );default:_ea .Log .Debug ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006c\u0069\u006ee\u0020\u0063\u0061\u0070\u0020\u0073\u0074\u0079\u006c\u0065:\u0020\u0025\u0064",_ddf );
|
|
|
|
return _ee ;};case "\u006a":if len (_dag .Params )!=1{return _ee ;};_bee ,_bac :=_e .GetIntVal (_dag .Params [0]);if !_bac {return _fec ;};switch _bee {case 0:_ade .SetLineJoin (_eaf .LineJoinBevel );case 1:_ade .SetLineJoin (_eaf .LineJoinRound );case 2:_ade .SetLineJoin (_eaf .LineJoinBevel );
|
|
|
|
default:_ea .Log .Debug ("I\u006e\u0076\u0061\u006c\u0069\u0064 \u006c\u0069\u006e\u0065\u0020\u006a\u006f\u0069\u006e \u0073\u0074\u0079l\u0065:\u0020\u0025\u0064",_bee );return _ee ;};case "\u004d":if len (_dag .Params )!=1{return _ee ;};_ab ,_adf :=_e .GetNumbersAsFloat (_dag .Params );
|
|
|
|
if _adf !=nil {return _adf ;};_ =_ab ;_ea .Log .Debug ("\u004di\u0074\u0065\u0072\u0020l\u0069\u006d\u0069\u0074\u0020n\u006ft\u0020s\u0075\u0070\u0070\u006f\u0072\u0074\u0065d");case "\u0064":if len (_dag .Params )!=2{return _ee ;};_gegg ,_bd :=_e .GetArray (_dag .Params [0]);
|
|
|
|
if !_bd {return _fec ;};_gbg ,_bd :=_e .GetIntVal (_dag .Params [1]);if !_bd {return _fec ;};_daaf ,_aba :=_e .GetNumbersAsFloat (_gegg .Elements ());if _aba !=nil {return _aba ;};_ade .SetDash (_daaf ...);_ =_gbg ;_ea .Log .Debug ("\u004c\u0069n\u0065\u0020\u0064\u0061\u0073\u0068\u0020\u0070\u0068\u0061\u0073\u0065\u0020\u006e\u006f\u0074\u0020\u0073\u0075\u0070\u0070\u006frt\u0065\u0064");
|
|
|
|
case "\u0072\u0069":_ea .Log .Debug ("\u0052\u0065\u006e\u0064\u0065\u0072\u0069\u006e\u0067\u0020i\u006e\u0074\u0065\u006e\u0074\u0020\u006eo\u0074\u0020\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064");case "\u0069":_ea .Log .Debug ("\u0046\u006c\u0061\u0074\u006e\u0065\u0073\u0073\u0020\u0074\u006f\u006c\u0065\u0072\u0061n\u0063e\u0020\u006e\u006f\u0074\u0020\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064");
|
|
|
|
case "\u0067\u0073":if len (_dag .Params )!=1{return _ee ;};_agd ,_egg :=_e .GetName (_dag .Params [0]);if !_egg {return _fec ;};if _agd ==nil {return _ee ;};_afg ,_egg :=_fecb .GetExtGState (*_agd );if !_egg {_ea .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020\u006eo\u0074 \u0066i\u006ed\u0020\u0072\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u003a\u0020\u0025\u0073",*_agd );
|
|
|
|
return _c .New ("\u0072e\u0073o\u0075\u0072\u0063\u0065\u0020n\u006f\u0074 \u0066\u006f\u0075\u006e\u0064");};_cada ,_egg :=_e .GetDict (_afg );if !_egg {_ea .Log .Debug ("\u0045\u0052RO\u0052\u003a\u0020c\u006f\u0075\u006c\u0064 ge\u0074 g\u0072\u0061\u0070\u0068\u0069\u0063\u0073 s\u0074\u0061\u0074\u0065\u0020\u0064\u0069c\u0074");
|
|
|
|
return _fec ;};_ea .Log .Debug ("G\u0053\u0020\u0064\u0069\u0063\u0074\u003a\u0020\u0025\u0073",_cada .String ());case "\u006d":if len (_dag .Params )!=2{_ea .Log .Debug ("\u0057\u0041\u0052\u004e\u003a\u0020\u0065\u0072\u0072o\u0072\u0020\u0077\u0068\u0069\u006c\u0065\u0020\u0070\u0072\u006f\u0063\u0065\u0073\u0073\u0069\u006e\u0067\u0020\u0060\u006d\u0060\u0020o\u0070\u0065r\u0061\u0074o\u0072\u003a\u0020\u0025\u0073\u002e\u0020\u004f\u0075\u0074\u0070\u0075\u0074 m\u0061\u0079\u0020\u0062\u0065\u0020\u0069\u006e\u0063o\u0072\u0072\u0065\u0063\u0074\u002e",_ee );
|
|
|
|
return nil ;};_cgd ,_bcd :=_e .GetNumbersAsFloat (_dag .Params );if _bcd !=nil {return _bcd ;};_ea .Log .Debug ("M\u006f\u0076\u0065\u0020\u0074\u006f\u003a\u0020\u0025\u0076",_cgd );_ade .NewSubPath ();_ade .MoveTo (_cgd [0],_cgd [1]);case "\u006c":if len (_dag .Params )!=2{_ea .Log .Debug ("\u0057\u0041\u0052\u004e\u003a\u0020\u0065\u0072\u0072o\u0072\u0020\u0077\u0068\u0069\u006c\u0065\u0020\u0070\u0072\u006f\u0063\u0065\u0073\u0073\u0069\u006e\u0067\u0020\u0060\u006c\u0060\u0020o\u0070\u0065r\u0061\u0074o\u0072\u003a\u0020\u0025\u0073\u002e\u0020\u004f\u0075\u0074\u0070\u0075\u0074 m\u0061\u0079\u0020\u0062\u0065\u0020\u0069\u006e\u0063o\u0072\u0072\u0065\u0063\u0074\u002e",_ee );
|
|
|
|
return nil ;};_eeb ,_cbc :=_e .GetNumbersAsFloat (_dag .Params );if _cbc !=nil {return _cbc ;};_ade .LineTo (_eeb [0],_eeb [1]);case "\u0063":if len (_dag .Params )!=6{return _ee ;};_ff ,_beeg :=_e .GetNumbersAsFloat (_dag .Params );if _beeg !=nil {return _beeg ;
|
|
|
|
};_ea .Log .Debug ("\u0043u\u0062\u0069\u0063\u0020\u0062\u0065\u007a\u0069\u0065\u0072\u0020p\u0061\u0072\u0061\u006d\u0073\u003a\u0020\u0025\u002b\u0076",_ff );_ade .CubicTo (_ff [0],_ff [1],_ff [2],_ff [3],_ff [4],_ff [5]);case "\u0076","\u0079":if len (_dag .Params )!=4{return _ee ;
|
|
|
|
};_gbf ,_gege :=_e .GetNumbersAsFloat (_dag .Params );if _gege !=nil {return _gege ;};_ea .Log .Debug ("\u0043u\u0062\u0069\u0063\u0020\u0062\u0065\u007a\u0069\u0065\u0072\u0020p\u0061\u0072\u0061\u006d\u0073\u003a\u0020\u0025\u002b\u0076",_gbf );_ade .QuadraticTo (_gbf [0],_gbf [1],_gbf [2],_gbf [3]);
|
|
|
|
case "\u0068":_ade .ClosePath ();_ade .NewSubPath ();case "\u0072\u0065":if len (_dag .Params )!=4{return _ee ;};_ecc ,_eagf :=_e .GetNumbersAsFloat (_dag .Params );if _eagf !=nil {return _eagf ;};_ade .DrawRectangle (_ecc [0],_ecc [1],_ecc [2],_ecc [3]);
|
|
|
|
_ade .NewSubPath ();case "\u0053":_bf ,_cdd :=_daa .ColorspaceStroking .ColorToRGB (_daa .ColorStroking );if _cdd !=nil {_ea .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_cdd );
|
|
|
|
return _cdd ;};_aeb ,_cgdb :=_bf .(*_gb .PdfColorDeviceRGB );if !_cgdb {_ea .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _cdd ;};_ade .SetRGBA (_aeb .R (),_aeb .G (),_aeb .B (),1);
|
|
|
|
_ade .Stroke ();case "\u0073":_gbc ,_adb :=_daa .ColorspaceStroking .ColorToRGB (_daa .ColorStroking );if _adb !=nil {_ea .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_adb );
|
|
|
|
return _adb ;};_efg ,_eeg :=_gbc .(*_gb .PdfColorDeviceRGB );if !_eeg {_ea .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _adb ;};_ade .ClosePath ();_ade .NewSubPath ();
|
|
|
|
_ade .SetRGBA (_efg .R (),_efg .G (),_efg .B (),1);_ade .Stroke ();case "\u0066","\u0046":_edb ,_dbg :=_daa .ColorspaceNonStroking .ColorToRGB (_daa .ColorNonStroking );if _dbg !=nil {_ea .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_dbg );
|
|
|
|
return _dbg ;};_fde ,_fcb :=_edb .(*_gb .PdfColorDeviceRGB );if !_fcb {_ea .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _dbg ;};_ade .SetRGBA (_fde .R (),_fde .G (),_fde .B (),1);
|
|
|
|
_ade .SetFillRule (_eaf .FillRuleWinding );_ade .Fill ();case "\u0066\u002a":_fgd ,_gdd :=_daa .ColorspaceNonStroking .ColorToRGB (_daa .ColorNonStroking );if _gdd !=nil {_ea .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_gdd );
|
|
|
|
return _gdd ;};_gbgg ,_dda :=_fgd .(*_gb .PdfColorDeviceRGB );if !_dda {_ea .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _gdd ;};_ade .SetRGBA (_gbgg .R (),_gbgg .G (),_gbgg .B (),1);
|
|
|
|
_ade .SetFillRule (_eaf .FillRuleEvenOdd );_ade .Fill ();case "\u0042":_afd ,_aff :=_daa .ColorspaceNonStroking .ColorToRGB (_daa .ColorNonStroking );if _aff !=nil {_ea .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_aff );
|
|
|
|
return _aff ;};_cbd :=_afd .(*_gb .PdfColorDeviceRGB );_ade .SetRGBA (_cbd .R (),_cbd .G (),_cbd .B (),1);_ade .SetFillRule (_eaf .FillRuleWinding );_ade .FillPreserve ();_afd ,_aff =_daa .ColorspaceStroking .ColorToRGB (_daa .ColorStroking );if _aff !=nil {_ea .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_aff );
|
|
|
|
return _aff ;};_cbd =_afd .(*_gb .PdfColorDeviceRGB );_ade .SetRGBA (_cbd .R (),_cbd .G (),_cbd .B (),1);_ade .Stroke ();case "\u0042\u002a":_gce ,_cab :=_daa .ColorspaceNonStroking .ColorToRGB (_daa .ColorNonStroking );if _cab !=nil {_ea .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_cab );
|
|
|
|
return _cab ;};_dde :=_gce .(*_gb .PdfColorDeviceRGB );_ade .SetRGBA (_dde .R (),_dde .G (),_dde .B (),1);_ade .SetFillRule (_eaf .FillRuleEvenOdd );_ade .FillPreserve ();_gce ,_cab =_daa .ColorspaceStroking .ColorToRGB (_daa .ColorStroking );if _cab !=nil {_ea .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_cab );
|
|
|
|
return _cab ;};_dde =_gce .(*_gb .PdfColorDeviceRGB );_ade .SetRGBA (_dde .R (),_dde .G (),_dde .B (),1);_ade .Stroke ();case "\u0062":_eggb ,_agg :=_daa .ColorspaceNonStroking .ColorToRGB (_daa .ColorNonStroking );if _agg !=nil {_ea .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_agg );
|
|
|
|
return _agg ;};_acf :=_eggb .(*_gb .PdfColorDeviceRGB );_ade .SetRGBA (_acf .R (),_acf .G (),_acf .B (),1);_ade .ClosePath ();_ade .NewSubPath ();_ade .SetFillRule (_eaf .FillRuleWinding );_ade .FillPreserve ();_eggb ,_agg =_daa .ColorspaceStroking .ColorToRGB (_daa .ColorStroking );
|
|
|
|
if _agg !=nil {_ea .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_agg );return _agg ;};_acf =_eggb .(*_gb .PdfColorDeviceRGB );_ade .SetRGBA (_acf .R (),_acf .G (),_acf .B (),1);
|
|
|
|
_ade .Stroke ();case "\u0062\u002a":_ade .ClosePath ();_efbe ,_gcd :=_daa .ColorspaceNonStroking .ColorToRGB (_daa .ColorNonStroking );if _gcd !=nil {_ea .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_gcd );
|
|
|
|
return _gcd ;};_ffc :=_efbe .(*_gb .PdfColorDeviceRGB );_ade .SetRGBA (_ffc .R (),_ffc .G (),_ffc .B (),1);_ade .NewSubPath ();_ade .SetFillRule (_eaf .FillRuleEvenOdd );_ade .FillPreserve ();_efbe ,_gcd =_daa .ColorspaceStroking .ColorToRGB (_daa .ColorStroking );
|
|
|
|
if _gcd !=nil {_ea .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_gcd );return _gcd ;};_ffc =_efbe .(*_gb .PdfColorDeviceRGB );_ade .SetRGBA (_ffc .R (),_ffc .G (),_ffc .B (),1);
|
|
|
|
_ade .Stroke ();case "\u006e":_ade .ClearPath ();case "\u0057":_ade .SetFillRule (_eaf .FillRuleWinding );_ade .ClipPreserve ();case "\u0057\u002a":_ade .SetFillRule (_eaf .FillRuleEvenOdd );_ade .ClipPreserve ();case "\u0072\u0067":_daga ,_ecb :=_daa .ColorNonStroking .(*_gb .PdfColorDeviceRGB );
|
|
|
|
if !_ecb {_ea .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_daa .ColorNonStroking );return nil ;};_ade .SetFillRGBA (_daga .R (),_daga .G (),_daga .B (),1);
|
|
|
|
case "\u0052\u0047":_cag ,_bfa :=_daa .ColorStroking .(*_gb .PdfColorDeviceRGB );if !_bfa {_ea .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_daa .ColorStroking );
|
|
|
|
return nil ;};_ade .SetStrokeRGBA (_cag .R (),_cag .G (),_cag .B (),1);case "\u006b":_aca ,_fgb :=_daa .ColorNonStroking .(*_gb .PdfColorDeviceCMYK );if !_fgb {_ea .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_daa .ColorNonStroking );
|
|
|
|
return nil ;};_gfg ,_age :=_daa .ColorspaceNonStroking .ColorToRGB (_aca );if _age !=nil {_ea .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_daa .ColorNonStroking );
|
|
|
|
return nil ;};_bfc ,_fgb :=_gfg .(*_gb .PdfColorDeviceRGB );if !_fgb {_ea .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_gfg );return nil ;
|
|
|
|
};_ade .SetFillRGBA (_bfc .R (),_bfc .G (),_bfc .B (),1);case "\u004b":_cda ,_gcb :=_daa .ColorStroking .(*_gb .PdfColorDeviceCMYK );if !_gcb {_ea .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_daa .ColorStroking );
|
|
|
|
return nil ;};_afda ,_cdg :=_daa .ColorspaceStroking .ColorToRGB (_cda );if _cdg !=nil {_ea .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_daa .ColorStroking );
|
|
|
|
return nil ;};_ceb ,_gcb :=_afda .(*_gb .PdfColorDeviceRGB );if !_gcb {_ea .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_afda );return nil ;
|
|
|
|
};_ade .SetStrokeRGBA (_ceb .R (),_ceb .G (),_ceb .B (),1);case "\u0067":_cac ,_bdc :=_daa .ColorNonStroking .(*_gb .PdfColorDeviceGray );if !_bdc {_ea .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_daa .ColorNonStroking );
|
|
|
|
return nil ;};_afa ,_caf :=_daa .ColorspaceNonStroking .ColorToRGB (_cac );if _caf !=nil {_ea .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_daa .ColorNonStroking );
|
|
|
|
return nil ;};_fa ,_bdc :=_afa .(*_gb .PdfColorDeviceRGB );if !_bdc {_ea .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_afa );return nil ;
|
|
|
|
};_ade .SetFillRGBA (_fa .R (),_fa .G (),_fa .B (),1);case "\u0047":_dfa ,_cdeac :=_daa .ColorStroking .(*_gb .PdfColorDeviceGray );if !_cdeac {_ea .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_daa .ColorStroking );
|
|
|
|
return nil ;};_cafa ,_ggc :=_daa .ColorspaceStroking .ColorToRGB (_dfa );if _ggc !=nil {_ea .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_daa .ColorStroking );
|
|
|
|
return nil ;};_dfae ,_cdeac :=_cafa .(*_gb .PdfColorDeviceRGB );if !_cdeac {_ea .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_cafa );return nil ;
|
|
|
|
};_ade .SetStrokeRGBA (_dfae .R (),_dfae .G (),_dfae .B (),1);case "\u0063\u0073","\u0073\u0063","\u0073\u0063\u006e":_bfcc ,_acfa :=_daa .ColorspaceNonStroking .ColorToRGB (_daa .ColorNonStroking );if _acfa !=nil {_ea .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_daa .ColorNonStroking );
|
|
|
|
return nil ;};_dbe ,_eae :=_bfcc .(*_gb .PdfColorDeviceRGB );if !_eae {_ea .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_bfcc );return nil ;
|
|
|
|
};_ade .SetFillRGBA (_dbe .R (),_dbe .G (),_dbe .B (),1);case "\u0043\u0053","\u0053\u0043","\u0053\u0043\u004e":_fga ,_bacf :=_daa .ColorspaceStroking .ColorToRGB (_daa .ColorStroking );if _bacf !=nil {_ea .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_daa .ColorStroking );
|
|
|
|
return nil ;};_eagc ,_cead :=_fga .(*_gb .PdfColorDeviceRGB );if !_cead {_ea .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_fga );return nil ;
|
|
|
|
};_ade .SetStrokeRGBA (_eagc .R (),_eagc .G (),_eagc .B (),1);case "\u0044\u006f":if len (_dag .Params )!=1{return _ee ;};_adec ,_cfb :=_e .GetName (_dag .Params [0]);if !_cfb {return _fec ;};_ ,_dbgb :=_fecb .GetXObjectByName (*_adec );switch _dbgb {case _gb .XObjectTypeImage :_ea .Log .Debug ("\u0058\u004f\u0062\u006a\u0065\u0063\u0074\u0020\u0069\u006d\u0061\u0067e\u003a\u0020\u0025\u0073",_adec .String ());
|
|
|
|
_gfb ,_fecd :=_fecb .GetXObjectImageByName (*_adec );if _fecd !=nil {return _fecd ;};_gcee ,_fecd :=_gfb .ToImage ();if _fecd !=nil {return _fecd ;};if _ddc :=_gfb .ColorSpace ;_ddc !=nil {var _efa bool ;switch _ddc .(type ){case *_gb .PdfColorspaceSpecialIndexed :_efa =true ;
|
|
|
|
};if _efa {if _ccfb ,_aaf :=_ddc .ImageToRGB (*_gcee );_aaf !=nil {_ea .Log .Debug ("\u0057\u0041\u0052\u004e\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020\u0063\u006fnv\u0065r\u0074\u0020\u0069\u006d\u0061\u0067\u0065\u0020\u0074\u006f\u0020\u0052G\u0042\u002e\u0020\u004f\u0075\u0074\u0070\u0075\u0074\u0020\u006d\u0061\u0079\u0020\u0062\u0065\u0020i\u006e\u0063\u006f\u0072\u0072\u0065\u0063\u0074\u002e");
|
|
|
|
}else {_gcee =&_ccfb ;};};};_ccde :=_ade .FillPattern ().ColorAt (0,0);var _acfg _be .Image ;if _gfb .Mask !=nil {if _acfg ,_fecd =_dae (_gfb .Mask ,_ccde );_fecd !=nil {_ea .Log .Debug ("\u0057\u0041\u0052\u004e\u003a \u0063\u006f\u0075\u006c\u0064 \u006eo\u0074\u0020\u0067\u0065\u0074\u0020\u0065\u0078\u0070\u006c\u0069\u0063\u0069\u0074\u0020\u0069\u006d\u0061\u0067e\u0020\u006d\u0061\u0073\u006b\u002e\u0020\u004f\u0075\u0074\u0070\u0075\u0074\u0020\u006d\u0061\u0079\u0020\u0062\u0065\u0020\u0069\u006e\u0063o\u0072\u0072\u0065\u0063\u0074\u002e");
|
|
|
|
};};var _eb _be .Image ;if _fgbc ,_ :=_e .GetBoolVal (_gfb .ImageMask );_fgbc {_eb =_ffbe (_gcee ,_ccde );}else {_eb ,_fecd =_gcee .ToGoImage ();if _fecd !=nil {return _fecd ;};};if _acfg !=nil {_eb =_ffbc (_eb ,_acfg );};_bab :=_eb .Bounds ();_ade .Push ();
|
|
|
|
_ade .Scale (1.0/float64 (_bab .Dx ()),-1.0/float64 (_bab .Dy ()));_ade .DrawImageAnchored (_eb ,0,0,0,1);_ade .Pop ();case _gb .XObjectTypeForm :_ea .Log .Debug ("\u0058\u004fb\u006a\u0065\u0063t\u0020\u0066\u006f\u0072\u006d\u003a\u0020\u0025\u0073",_adec .String ());
|
|
|
|
_bec ,_gbd :=_fecb .GetXObjectFormByName (*_adec );if _gbd !=nil {return _gbd ;};_gef ,_gbd :=_bec .GetContentStream ();if _gbd !=nil {return _gbd ;};_ggf :=_bec .Resources ;if _ggf ==nil {_ggf =_fecb ;};_ade .Push ();if _bec .Matrix !=nil {_dca ,_ffb :=_e .GetArray (_bec .Matrix );
|
|
|
|
if !_ffb {return _fec ;};_gcac ,_ggcd :=_e .GetNumbersAsFloat (_dca .Elements ());if _ggcd !=nil {return _ggcd ;};if len (_gcac )!=6{return _ee ;};_dfe :=_d .NewMatrix (_gcac [0],_gcac [1],_gcac [2],_gcac [3],_gcac [4],_gcac [5]);_ade .SetMatrix (_ade .Matrix ().Mult (_dfe ));
|
|
|
|
};if _bec .BBox !=nil {_fab ,_fae :=_e .GetArray (_bec .BBox );if !_fae {return _fec ;};_fgc ,_ecg :=_e .GetNumbersAsFloat (_fab .Elements ());if _ecg !=nil {return _ecg ;};if len (_fgc )!=4{_ea .Log .Debug ("\u004c\u0065\u006e\u0020\u003d\u0020\u0025\u0064",len (_fgc ));
|
|
|
|
return _ee ;};_ade .DrawRectangle (_fgc [0],_fgc [1],_fgc [2]-_fgc [0],_fgc [3]-_fgc [1]);_ade .SetRGBA (1,0,0,1);_ade .Clip ();}else {_ea .Log .Debug ("\u0045R\u0052\u004fR\u003a\u0020\u0052\u0065q\u0075\u0069\u0072e\u0064\u0020\u0042\u0042\u006f\u0078\u0020\u006d\u0069ss\u0069\u006e\u0067 \u006f\u006e \u0058\u004f\u0062\u006a\u0065\u0063t\u0020\u0046o\u0072\u006d");
|
|
|
|
};_gbd =_af .renderContentStream (_ade ,string (_gef ),_ggf );if _gbd !=nil {return _gbd ;};_ade .Pop ();};case "\u0042\u0049":if len (_dag .Params )!=1{return _ee ;};_faa ,_fefd :=_dag .Params [0].(*_ce .ContentStreamInlineImage );if !_fefd {return nil ;
|
|
|
|
};_agf ,_dcab :=_faa .ToImage (_fecb );if _dcab !=nil {return _dcab ;};_bgg ,_dcab :=_agf .ToGoImage ();if _dcab !=nil {return _dcab ;};_ggb :=_bgg .Bounds ();_ade .Push ();_ade .Scale (1.0/float64 (_ggb .Dx ()),-1.0/float64 (_ggb .Dy ()));_ade .DrawImageAnchored (_bgg ,0,0,0,1);
|
|
|
|
_ade .Pop ();case "\u0042\u0054":_gg .Reset ();case "\u0045\u0054":_gg .Reset ();case "\u0054\u0072":if len (_dag .Params )!=1{return _ee ;};_efe ,_bbd :=_e .GetNumberAsFloat (_dag .Params [0]);if _bbd !=nil {return _bbd ;};_gg .Tr =_eaf .TextRenderingMode (_efe );
|
|
|
|
case "\u0054\u004c":if len (_dag .Params )!=1{return _ee ;};_fbff ,_ceg :=_e .GetNumberAsFloat (_dag .Params [0]);if _ceg !=nil {return _ceg ;};_gg .Tl =_fbff ;case "\u0054\u0063":if len (_dag .Params )!=1{return _ee ;};_fcg ,_aae :=_e .GetNumberAsFloat (_dag .Params [0]);
|
|
|
|
if _aae !=nil {return _aae ;};_ea .Log .Debug ("\u0054\u0063\u003a\u0020\u0025\u0076",_fcg );_gg .Tc =_fcg ;case "\u0054\u0077":if len (_dag .Params )!=1{return _ee ;};_ege ,_ffe :=_e .GetNumberAsFloat (_dag .Params [0]);if _ffe !=nil {return _ffe ;};_ea .Log .Debug ("\u0054\u0077\u003a\u0020\u0025\u0076",_ege );
|
|
|
|
_gg .Tw =_ege ;case "\u0054\u007a":if len (_dag .Params )!=1{return _ee ;};_egge ,_bdcf :=_e .GetNumberAsFloat (_dag .Params [0]);if _bdcf !=nil {return _bdcf ;};_gg .Th =_egge ;case "\u0054\u0073":if len (_dag .Params )!=1{return _ee ;};_cge ,_eda :=_e .GetNumberAsFloat (_dag .Params [0]);
|
|
|
|
if _eda !=nil {return _eda ;};_gg .Ts =_cge ;case "\u0054\u0064":if len (_dag .Params )!=2{return _ee ;};_feg ,_dgg :=_e .GetNumbersAsFloat (_dag .Params );if _dgg !=nil {return _dgg ;};_ea .Log .Debug ("\u0054\u0064\u003a\u0020\u0025\u0076",_feg );_gg .ProcTd (_feg [0],_feg [1]);
|
|
|
|
case "\u0054\u0044":if len (_dag .Params )!=2{return _ee ;};_dfd ,_cfc :=_e .GetNumbersAsFloat (_dag .Params );if _cfc !=nil {return _cfc ;};_ea .Log .Debug ("\u0054\u0044\u003a\u0020\u0025\u0076",_dfd );_gg .ProcTD (_dfd [0],_dfd [1]);case "\u0054\u002a":_gg .ProcTStar ();
|
|
|
|
case "\u0054\u006d":if len (_dag .Params )!=6{return _ee ;};_cagg ,_gfd :=_e .GetNumbersAsFloat (_dag .Params );if _gfd !=nil {return _gfd ;};_ea .Log .Debug ("\u0054\u0065x\u0074\u0020\u006da\u0074\u0072\u0069\u0078\u003a\u0020\u0025\u002b\u0076",_cagg );
|
|
|
|
_gg .ProcTm (_cagg [0],_cagg [1],_cagg [2],_cagg [3],_cagg [4],_cagg [5]);case "\u0027":if len (_dag .Params )!=1{return _ee ;};_affa ,_fgac :=_e .GetStringBytes (_dag .Params [0]);if !_fgac {return _fec ;};_ea .Log .Debug ("\u0027\u0020\u0073t\u0072\u0069\u006e\u0067\u003a\u0020\u0025\u0073",string (_affa ));
|
|
|
|
_gg .ProcQ (_affa ,_ade );case "\u0022":if len (_dag .Params )!=3{return _ee ;};_fgcd ,_de :=_e .GetNumberAsFloat (_dag .Params [0]);if _de !=nil {return _de ;};_bcf ,_de :=_e .GetNumberAsFloat (_dag .Params [1]);if _de !=nil {return _de ;};_dab ,_efae :=_e .GetStringBytes (_dag .Params [2]);
|
|
|
|
if !_efae {return _fec ;};_gg .ProcDQ (_dab ,_fgcd ,_bcf ,_ade );case "\u0054\u006a":if len (_dag .Params )!=1{return _ee ;};_cgdg ,_dec :=_e .GetStringBytes (_dag .Params [0]);if !_dec {return _fec ;};_ea .Log .Debug ("\u0054j\u0020s\u0074\u0072\u0069\u006e\u0067\u003a\u0020\u0060\u0025\u0073\u0060",string (_cgdg ));
|
|
|
|
_gg .ProcTj (_cgdg ,_ade );case "\u0054\u004a":if len (_dag .Params )!=1{return _ee ;};_cfd ,_fabb :=_e .GetArray (_dag .Params [0]);if !_fabb {_ea .Log .Debug ("\u0054\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_cfd );return _fec ;};_ea .Log .Debug ("\u0054\u004a\u0020\u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u002b\u0076",_cfd );
|
|
|
|
for _ ,_eed :=range _cfd .Elements (){switch _adg :=_eed .(type ){case *_e .PdfObjectString :if _adg !=nil {_gg .ProcTj (_adg .Bytes (),_ade );};case *_e .PdfObjectFloat ,*_e .PdfObjectInteger :_eaed ,_dfea :=_e .GetNumberAsFloat (_adg );if _dfea ==nil {_gg .Translate (-_eaed *0.001*_gg .Tf .Size *_gg .Th /100.0,0);
|
|
|
|
};};};case "\u0054\u0066":if len (_dag .Params )!=2{return _ee ;};_ea .Log .Debug ("\u0025\u0023\u0076",_dag .Params );_adfd ,_gefd :=_e .GetName (_dag .Params [0]);if !_gefd ||_adfd ==nil {_ea .Log .Debug ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u006e\u0061m\u0065 \u006f\u0062\u006a\u0065\u0063\u0074\u003a \u0025\u0076",_dag .Params [0]);
|
|
|
|
return _fec ;};_ea .Log .Debug ("\u0046\u006f\u006e\u0074\u0020\u006e\u0061\u006d\u0065\u003a\u0020\u0025\u0073",_adfd .String ());_gcef ,_bdd :=_e .GetNumberAsFloat (_dag .Params [1]);if _bdd !=nil {_ea .Log .Debug ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u0073\u0069z\u0065 \u006f\u0062\u006a\u0065\u0063\u0074\u003a \u0025\u0076",_dag .Params [1]);
|
|
|
|
return _fec ;};_ea .Log .Debug ("\u0046\u006f\u006e\u0074\u0020\u0073\u0069\u007a\u0065\u003a\u0020\u0025\u0076",_gcef );_bbe ,_ega :=_fecb .GetFontByName (*_adfd );if !_ega {_ea .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0046\u006f\u006e\u0074\u0020\u0025s\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064",_adfd .String ());
|
|
|
|
return _c .New ("\u0066\u006f\u006e\u0074\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};_ea .Log .Debug ("\u0046\u006f\u006e\u0074\u003a\u0020\u0025\u0054",_bbe );_aab ,_gefd :=_e .GetDict (_bbe );if !_gefd {_ea .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0063\u006f\u0075l\u0064\u0020\u006e\u006f\u0074\u0020\u0067e\u0074\u0020\u0066\u006f\u006e\u0074\u0020\u0064\u0069\u0063\u0074");
|
|
|
|
return _fec ;};_caa ,_bdd :=_gb .NewPdfFontFromPdfObject (_aab );if _bdd !=nil {_ea .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020\u006c\u006f\u0061\u0064\u0020\u0066\u006fn\u0074\u0020\u0066\u0072\u006fm\u0020\u006fb\u006a\u0065\u0063\u0074");
|
|
|
|
return _bdd ;};_edc :=_caa .BaseFont ();if _edc ==""{_edc =_adfd .String ();};_cgc ,_gefd :=_eg [_edc ];if !_gefd {_cgc ,_bdd =_eaf .NewTextFont (_caa ,_gcef );if _bdd !=nil {_ea .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bdd );};};if _cgc ==nil {if len (_edc )> 7&&_edc [6]=='+'{_edc =_edc [7:];
|
|
|
|
};_gegga :=[]string {_edc ,"\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 _ ,_gegd :=range _gegga {_ea .Log .Debug ("\u0044\u0045\u0042\u0055\u0047\u003a \u0073\u0065\u0061\u0072\u0063\u0068\u0069\u006e\u0067\u0020\u0073\u0079\u0073t\u0065\u006d\u0020\u0066\u006f\u006e\u0074 \u0060\u0025\u0073\u0060",_gegd );
|
|
|
|
if _cgc ,_gefd =_eg [_gegd ];_gefd {break ;};_ggcdd :=_fc .Match (_gegd );if _ggcdd ==nil {_ea .Log .Debug ("c\u006f\u0075\u006c\u0064\u0020\u006eo\u0074\u0020\u0066\u0069\u006e\u0064\u0020\u0066\u006fn\u0074\u0020\u0066i\u006ce\u0020\u0025\u0073",_gegd );
|
|
|
|
continue ;};_cgc ,_bdd =_eaf .NewTextFontFromPath (_ggcdd .Filename ,_gcef );if _bdd !=nil {_ea .Log .Debug ("c\u006f\u0075\u006c\u0064\u0020\u006eo\u0074\u0020\u006c\u006f\u0061\u0064\u0020\u0066\u006fn\u0074\u0020\u0066i\u006ce\u0020\u0025\u0073",_ggcdd .Filename );
|
|
|
|
continue ;};_ea .Log .Debug ("\u0053\u0075\u0062\u0073\u0074\u0069t\u0075\u0074\u0069\u006e\u0067\u0020\u0066\u006f\u006e\u0074\u0020\u0025\u0073 \u0077\u0069\u0074\u0068\u0020\u0025\u0073 \u0028\u0025\u0073\u0029",_edc ,_ggcdd .Name ,_ggcdd .Filename );
|
|
|
|
_eg [_gegd ]=_cgc ;break ;};};if _cgc ==nil {_ea .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020n\u006f\u0074\u0020\u0066\u0069\u006ed\u0020\u0061\u006e\u0079\u0020\u0073\u0075\u0069\u0074\u0061\u0062\u006c\u0065 \u0066\u006f\u006e\u0074");
|
|
|
|
return _c .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");};_gg .ProcTf (_cgc .WithSize (_gcef ,_caa ));case "\u0042\u004d\u0043","\u0042\u0044\u0043":case "\u0045\u004d\u0043":default:_ea .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0075\u006e\u0073u\u0070\u0070\u006f\u0072\u0074\u0065\u0064 \u006f\u0070\u0065\u0072\u0061\u006e\u0064\u003a\u0020\u0025\u0073",_dag .Operand );
|
|
|
|
};return nil ;});_db =_ag .Process (_eag );if _db !=nil {return _db ;};return nil ;};
|
2021-01-26 01:31:56 +00:00
|
|
|
|
|
|
|
// ImageDevice is used to render PDF pages to image targets.
|
2021-02-11 10:35:13 +00:00
|
|
|
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.
|
2021-04-23 20:28:14 +00:00
|
|
|
OutputWidth int ;};
|
|
|
|
|
|
|
|
// Render converts the specified PDF page into an image and returns the result.
|
|
|
|
func (_gee *ImageDevice )Render (page *_gb .PdfPage )(_be .Image ,error ){_f ,_fd :=page .GetMediaBox ();if _fd !=nil {return nil ,_fd ;};_f .Normalize ();_ac :=page .CropBox ;var _ef ,_fg float64 ;if _ac !=nil {_ac .Normalize ();_ef ,_fg =_ac .Width (),_ac .Height ();
|
|
|
|
};_fe :=page .Rotate ;_bbc ,_gca ,_fb ,_ccf :=_f .Llx ,_f .Lly ,_f .Width (),_f .Height ();_cb :=_d .IdentityMatrix ();if _fe !=nil &&*_fe %360!=0&&*_fe %90==0{_ba :=-float64 (*_fe );_fdd :=_egd (_fb ,_ccf ,_ba );_cb =_cb .Translate ((_fdd .Width -_fb )/2+_fb /2,(_fdd .Height -_ccf )/2+_ccf /2).Rotate (_ba *_a .Pi /180).Translate (-_fb /2,-_ccf /2);
|
|
|
|
_fb ,_ccf =_fdd .Width ,_fdd .Height ;if _ac !=nil {_gd :=_egd (_ef ,_fg ,_ba );_ef ,_fg =_gd .Width ,_gd .Height ;};};if _bbc !=0||_gca !=0{_cb =_cb .Translate (-_bbc ,-_gca );};_gee ._bbcf =1.0;if _gee .OutputWidth !=0{_cdea :=_fb ;if _ac !=nil {_cdea =_ef ;
|
|
|
|
};_gee ._bbcf =float64 (_gee .OutputWidth )/_cdea ;_fb ,_ccf ,_ef ,_fg =_fb *_gee ._bbcf ,_ccf *_gee ._bbcf ,_ef *_gee ._bbcf ,_fg *_gee ._bbcf ;_cb =_d .ScaleMatrix (_gee ._bbcf ,_gee ._bbcf ).Mult (_cb );};_beg :=_eab .NewContext (int (_fb ),int (_ccf ));
|
|
|
|
if _cad :=_gee .renderPage (_beg ,page ,_cb );_cad !=nil {return nil ,_cad ;};_ga :=_beg .Image ();if _ac !=nil {_fdc ,_dg :=(_ac .Llx -_bbc )*_gee ._bbcf ,(_ac .Lly -_gca )*_gee ._bbcf ;_geg :=_be .Rect (0,0,int (_ef ),int (_fg ));_dd :=_be .Pt (int (_fdc ),int (_ccf -_dg -_fg ));
|
|
|
|
_cec :=_be .NewRGBA (_geg );_ad .Draw (_cec ,_geg ,_ga ,_dd ,_ad .Src );_ga =_cec ;};return _ga ,nil ;};func _cdb (_baa string ,_babf _be .Image ,_dabf int )error {_cddg ,_fegc :=_cc .Create (_baa );if _fegc !=nil {return _fegc ;};defer _cddg .Close ();
|
|
|
|
return _b .Encode (_cddg ,_babf ,&_b .Options {Quality :_dabf });};func _egd (_bfd ,_dfaef ,_dga float64 )_bb .BoundingBox {return _bb .Path {Points :[]_bb .Point {_bb .NewPoint (0,0).Rotate (_dga ),_bb .NewPoint (_bfd ,0).Rotate (_dga ),_bb .NewPoint (0,_dfaef ).Rotate (_dga ),_bb .NewPoint (_bfd ,_dfaef ).Rotate (_dga )}}.GetBoundingBox ();
|
|
|
|
};func _dae (_efc _e .PdfObject ,_gfgd _gc .Color )(_be .Image ,error ){_aec ,_ccg :=_e .GetStream (_efc );if !_ccg {return nil ,nil ;};_bdb ,_afb :=_gb .NewXObjectImageFromStream (_aec );if _afb !=nil {return nil ,_afb ;};_gdb ,_afb :=_bdb .ToImage ();
|
|
|
|
if _afb !=nil {return nil ,_afb ;};return _ffbe (_gdb ,_gfgd ),nil ;};type renderer struct{_bbcf float64 };
|
2021-04-06 22:35:37 +00:00
|
|
|
|
2021-04-17 13:46:54 +00:00
|
|
|
// RenderToPath converts the specified PDF page into an image and saves the
|
|
|
|
// result at the specified location.
|
2021-04-23 20:28:14 +00:00
|
|
|
func (_aa *ImageDevice )RenderToPath (page *_gb .PdfPage ,outputPath string )error {_bbg ,_gcf :=_aa .Render (page );if _gcf !=nil {return _gcf ;};_ccd :=_ca .ToLower (_cg .Ext (outputPath ));if _ccd ==""{return _c .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 _ccd {case "\u002e\u0070\u006e\u0067":return _cbda (outputPath ,_bbg );case "\u002e\u006a\u0070\u0067","\u002e\u006a\u0070e\u0067":return _cdb (outputPath ,_bbg ,100);};return _cde .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",_ccd );
|
|
|
|
};
|
|
|
|
|
|
|
|
// NewImageDevice returns a new image device.
|
|
|
|
func NewImageDevice ()*ImageDevice {const _dc ="r\u0065\u006e\u0064\u0065r.\u004ee\u0077\u0049\u006d\u0061\u0067e\u0044\u0065\u0076\u0069\u0063\u0065";_cf .TrackUse (_dc );return &ImageDevice {};};func (_gf renderer )renderPage (_fef _eaf .Context ,_da *_gb .PdfPage ,_geb _d .Matrix )error {_dcb ,_efb :=_da .GetAllContentStreams ();
|
|
|
|
if _efb !=nil {return _efb ;};if _bg :=_geb ;!_bg .Identity (){_dcb =_cde .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",_bg [0],_bg [1],_bg [3],_bg [4],_bg [6],_bg [7],_dcb );
|
|
|
|
};_fef .Translate (0,float64 (_fef .Height ()));_fef .Scale (1,-1);_fef .Push ();_fef .SetRGBA (1,1,1,1);_fef .DrawRectangle (0,0,float64 (_fef .Width ()),float64 (_fef .Height ()));_fef .Fill ();_fef .Pop ();_fef .SetLineWidth (1.0);_fef .SetRGBA (0,0,0,1);
|
|
|
|
return _gf .renderContentStream (_fef ,_dcb ,_da .Resources );};var (_fec =_c .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");_ee =_c .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");
|
|
|
|
);func _ffbc (_efec ,_abg _be .Image )_be .Image {_dgc ,_abe :=_abg .Bounds ().Size (),_efec .Bounds ().Size ();_aaea ,_bggc :=_dgc .X ,_dgc .Y ;if _abe .X > _aaea {_aaea =_abe .X ;};if _abe .Y > _bggc {_bggc =_abe .Y ;};_bgdg :=_be .Rect (0,0,_aaea ,_bggc );
|
|
|
|
if _dgc .X !=_aaea ||_dgc .Y !=_bggc {_dceb :=_be .NewRGBA (_bgdg );_ae .BiLinear .Scale (_dceb ,_bgdg ,_efec ,_abg .Bounds (),_ae .Over ,nil );_abg =_dceb ;};if _abe .X !=_aaea ||_abe .Y !=_bggc {_ccb :=_be .NewRGBA (_bgdg );_ae .BiLinear .Scale (_ccb ,_bgdg ,_efec ,_efec .Bounds (),_ae .Over ,nil );
|
|
|
|
_efec =_ccb ;};_bace :=_be .NewRGBA (_bgdg );_ae .DrawMask (_bace ,_bgdg ,_efec ,_be .Point {},_abg ,_be .Point {},_ae .Over );return _bace ;};func _ffbe (_bce *_gb .Image ,_eegb _gc .Color )_be .Image {_ddd ,_dgge :=int (_bce .Width ),int (_bce .Height );
|
|
|
|
_bdf :=_be .NewRGBA (_be .Rect (0,0,_ddd ,_dgge ));for _ced :=0;_ced < _dgge ;_ced ++{for _bgd :=0;_bgd < _ddd ;_bgd ++{_bcc ,_efga :=_bce .ColorAt (_bgd ,_ced );if _efga !=nil {_ea .Log .Debug ("\u0057\u0041\u0052\u004e\u003a\u0020\u0063o\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020\u0072\u0065\u0074\u0072\u0069\u0065v\u0065 \u0069\u006d\u0061\u0067\u0065\u0020m\u0061\u0073\u006b\u0020\u0076\u0061\u006cu\u0065\u0020\u0061\u0074\u0020\u0028\u0025\u0064\u002c\u0020\u0025\u0064\u0029\u002e\u0020\u004f\u0075\u0074\u0070\u0075\u0074\u0020\u006da\u0079\u0020\u0062\u0065\u0020\u0069\u006e\u0063\u006f\u0072\u0072\u0065\u0063t\u002e",_bgd ,_ced );
|
|
|
|
continue ;};_ceag ,_baf ,_beeb ,_ :=_bcc .RGBA ();var _adff _gc .Color ;if _ceag +_baf +_beeb ==0{_adff =_eegb ;}else {_adff =_gc .Transparent ;};_bdf .Set (_bgd ,_ced ,_adff );};};return _bdf ;};
|