mirror of
https://github.com/unidoc/unipdf.git
synced 2025-04-26 13:48:55 +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 (_b "errors";_gf "fmt";_ff "github.com/adrg/sysfont";_ef "github.com/unidoc/unipdf/v3/common";_de "github.com/unidoc/unipdf/v3/contentstream";_cf "github.com/unidoc/unipdf/v3/contentstream/draw";_eg "github.com/unidoc/unipdf/v3/core";
|
|
_dc "github.com/unidoc/unipdf/v3/internal/license";_cc "github.com/unidoc/unipdf/v3/internal/transform";_gea "github.com/unidoc/unipdf/v3/model";_ca "github.com/unidoc/unipdf/v3/render/internal/context";_bed "github.com/unidoc/unipdf/v3/render/internal/context/imagerender";
|
|
_fc "golang.org/x/image/draw";_ge "image";_be "image/color";_f "image/draw";_af "image/jpeg";_a "image/png";_d "math";_c "os";_e "path/filepath";_gc "strings";);func _fdda (_fbfb ,_cda _ge .Image )_ge .Image {_ad ,_bgf :=_cda .Bounds ().Size (),_fbfb .Bounds ().Size ();
|
|
_ege ,_ece :=_ad .X ,_ad .Y ;if _bgf .X > _ege {_ege =_bgf .X ;};if _bgf .Y > _ece {_ece =_bgf .Y ;};_eeaa :=_ge .Rect (0,0,_ege ,_ece );if _ad .X !=_ege ||_ad .Y !=_ece {_bbdb :=_ge .NewRGBA (_eeaa );_fc .BiLinear .Scale (_bbdb ,_eeaa ,_fbfb ,_cda .Bounds (),_fc .Over ,nil );
|
|
_cda =_bbdb ;};if _bgf .X !=_ege ||_bgf .Y !=_ece {_degc :=_ge .NewRGBA (_eeaa );_fc .BiLinear .Scale (_degc ,_eeaa ,_fbfb ,_fbfb .Bounds (),_fc .Over ,nil );_fbfb =_degc ;};_afa :=_ge .NewRGBA (_eeaa );_fc .DrawMask (_afa ,_eeaa ,_fbfb ,_ge .Point {},_cda ,_ge .Point {},_fc .Over );
|
|
return _afa ;};func _fgfb (_gbcg string ,_abe _ge .Image )error {_bab ,_cga :=_c .Create (_gbcg );if _cga !=nil {return _cga ;};defer _bab .Close ();return _a .Encode (_bab ,_abe );};func (_cff renderer )renderContentStream (_bce _ca .Context ,_aae string ,_ed *_gea .PdfPageResources )error {_ae ,_acb :=_de .NewContentStreamParser (_aae ).Parse ();
|
|
if _acb !=nil {return _acb ;};_db :=_bce .TextState ();_db .GlobalScale =_cff ._dda ;_gdgd :=map[string ]*_ca .TextFont {};_da :=_ff .NewFinder (&_ff .FinderOpts {Extensions :[]string {"\u002e\u0074\u0074\u0066","\u002e\u0074\u0074\u0063"}});_abg :=_de .NewContentStreamProcessor (*_ae );
|
|
_abg .AddHandler (_de .HandlerConditionEnumAllOperands ,"",func (_bca *_de .ContentStreamOperation ,_fdgf _de .GraphicsState ,_ea *_gea .PdfPageResources )error {_ef .Log .Debug ("\u0050\u0072\u006f\u0063\u0065\u0073\u0073\u0069\u006e\u0067\u0020\u0025\u0073",_bca .Operand );
|
|
switch _bca .Operand {case "\u0071":_bce .Push ();case "\u0051":_bce .Pop ();_db =_bce .TextState ();case "\u0063\u006d":if len (_bca .Params )!=6{return _efe ;};_dg ,_fb :=_eg .GetNumbersAsFloat (_bca .Params );if _fb !=nil {return _fb ;};_fga :=_cc .NewMatrix (_dg [0],_dg [1],_dg [2],_dg [3],_dg [4],_dg [5]);
|
|
_ef .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",_fga );_bce .SetMatrix (_bce .Matrix ().Mult (_fga ));case "\u0077":if len (_bca .Params )!=1{return _efe ;
|
|
};_gef ,_cbe :=_eg .GetNumbersAsFloat (_bca .Params );if _cbe !=nil {return _cbe ;};_bce .SetLineWidth (_gef [0]);case "\u004a":if len (_bca .Params )!=1{return _efe ;};_dfb ,_gfb :=_eg .GetIntVal (_bca .Params [0]);if !_gfb {return _afdc ;};switch _dfb {case 0:_bce .SetLineCap (_ca .LineCapButt );
|
|
case 1:_bce .SetLineCap (_ca .LineCapRound );case 2:_bce .SetLineCap (_ca .LineCapSquare );default:_ef .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",_dfb );
|
|
return _efe ;};case "\u006a":if len (_bca .Params )!=1{return _efe ;};_cbc ,_dac :=_eg .GetIntVal (_bca .Params [0]);if !_dac {return _afdc ;};switch _cbc {case 0:_bce .SetLineJoin (_ca .LineJoinBevel );case 1:_bce .SetLineJoin (_ca .LineJoinRound );case 2:_bce .SetLineJoin (_ca .LineJoinBevel );
|
|
default:_ef .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",_cbc );return _efe ;};case "\u004d":if len (_bca .Params )!=1{return _efe ;};_dbf ,_baf :=_eg .GetNumbersAsFloat (_bca .Params );
|
|
if _baf !=nil {return _baf ;};_ =_dbf ;_ef .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 (_bca .Params )!=2{return _efe ;};_cg ,_dag :=_eg .GetArray (_bca .Params [0]);
|
|
if !_dag {return _afdc ;};_cd ,_dag :=_eg .GetIntVal (_bca .Params [1]);if !_dag {return _afdc ;};_ebd ,_bb :=_eg .GetNumbersAsFloat (_cg .Elements ());if _bb !=nil {return _bb ;};_bce .SetDash (_ebd ...);_ =_cd ;_ef .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":_ef .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":_ef .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 (_bca .Params )!=1{return _efe ;};_gcc ,_fdgfe :=_eg .GetName (_bca .Params [0]);if !_fdgfe {return _afdc ;};if _gcc ==nil {return _efe ;};_fbc ,_fdgfe :=_ea .GetExtGState (*_gcc );if !_fdgfe {_ef .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",*_gcc );
|
|
return _b .New ("\u0072e\u0073o\u0075\u0072\u0063\u0065\u0020n\u006f\u0074 \u0066\u006f\u0075\u006e\u0064");};_cedc ,_fdgfe :=_eg .GetDict (_fbc );if !_fdgfe {_ef .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 _afdc ;};_ef .Log .Debug ("G\u0053\u0020\u0064\u0069\u0063\u0074\u003a\u0020\u0025\u0073",_cedc .String ());case "\u006d":if len (_bca .Params )!=2{_ef .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",_efe );
|
|
return nil ;};_bd ,_bee :=_eg .GetNumbersAsFloat (_bca .Params );if _bee !=nil {return _bee ;};_ef .Log .Debug ("M\u006f\u0076\u0065\u0020\u0074\u006f\u003a\u0020\u0025\u0076",_bd );_bce .NewSubPath ();_bce .MoveTo (_bd [0],_bd [1]);case "\u006c":if len (_bca .Params )!=2{_ef .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",_efe );
|
|
return nil ;};_bdg ,_ga :=_eg .GetNumbersAsFloat (_bca .Params );if _ga !=nil {return _ga ;};_bce .LineTo (_bdg [0],_bdg [1]);case "\u0063":if len (_bca .Params )!=6{return _efe ;};_cba ,_bg :=_eg .GetNumbersAsFloat (_bca .Params );if _bg !=nil {return _bg ;
|
|
};_ef .Log .Debug ("\u0043u\u0062\u0069\u0063\u0020\u0062\u0065\u007a\u0069\u0065\u0072\u0020p\u0061\u0072\u0061\u006d\u0073\u003a\u0020\u0025\u002b\u0076",_cba );_bce .CubicTo (_cba [0],_cba [1],_cba [2],_cba [3],_cba [4],_cba [5]);case "\u0076","\u0079":if len (_bca .Params )!=4{return _efe ;
|
|
};_ega ,_dbfb :=_eg .GetNumbersAsFloat (_bca .Params );if _dbfb !=nil {return _dbfb ;};_ef .Log .Debug ("\u0043u\u0062\u0069\u0063\u0020\u0062\u0065\u007a\u0069\u0065\u0072\u0020p\u0061\u0072\u0061\u006d\u0073\u003a\u0020\u0025\u002b\u0076",_ega );_bce .QuadraticTo (_ega [0],_ega [1],_ega [2],_ega [3]);
|
|
case "\u0068":_bce .ClosePath ();_bce .NewSubPath ();case "\u0072\u0065":if len (_bca .Params )!=4{return _efe ;};_edf ,_gfe :=_eg .GetNumbersAsFloat (_bca .Params );if _gfe !=nil {return _gfe ;};_bce .DrawRectangle (_edf [0],_edf [1],_edf [2],_edf [3]);
|
|
_bce .NewSubPath ();case "\u0053":_gga ,_aad :=_fdgf .ColorspaceStroking .ColorToRGB (_fdgf .ColorStroking );if _aad !=nil {_ef .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 ;};_cgg ,_fgb :=_gga .(*_gea .PdfColorDeviceRGB );if !_fgb {_ef .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _aad ;};_bce .SetRGBA (_cgg .R (),_cgg .G (),_cgg .B (),1);
|
|
_bce .Stroke ();case "\u0073":_fcf ,_dbg :=_fdgf .ColorspaceStroking .ColorToRGB (_fdgf .ColorStroking );if _dbg !=nil {_ef .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 ;};_bgd ,_dbb :=_fcf .(*_gea .PdfColorDeviceRGB );if !_dbb {_ef .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _dbg ;};_bce .ClosePath ();_bce .NewSubPath ();
|
|
_bce .SetRGBA (_bgd .R (),_bgd .G (),_bgd .B (),1);_bce .Stroke ();case "\u0066","\u0046":_ffa ,_ceb :=_fdgf .ColorspaceNonStroking .ColorToRGB (_fdgf .ColorNonStroking );if _ceb !=nil {_ef .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",_ceb );
|
|
return _ceb ;};_edb ,_bcef :=_ffa .(*_gea .PdfColorDeviceRGB );if !_bcef {_ef .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _ceb ;};_bce .SetRGBA (_edb .R (),_edb .G (),_edb .B (),1);
|
|
_bce .SetFillRule (_ca .FillRuleWinding );_bce .Fill ();case "\u0066\u002a":_ffe ,_gda :=_fdgf .ColorspaceNonStroking .ColorToRGB (_fdgf .ColorNonStroking );if _gda !=nil {_ef .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",_gda );
|
|
return _gda ;};_aca ,_bbb :=_ffe .(*_gea .PdfColorDeviceRGB );if !_bbb {_ef .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _gda ;};_bce .SetRGBA (_aca .R (),_aca .G (),_aca .B (),1);
|
|
_bce .SetFillRule (_ca .FillRuleEvenOdd );_bce .Fill ();case "\u0042":_fdb ,_cfc :=_fdgf .ColorspaceNonStroking .ColorToRGB (_fdgf .ColorNonStroking );if _cfc !=nil {_ef .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_cfc );
|
|
return _cfc ;};_dee :=_fdb .(*_gea .PdfColorDeviceRGB );_bce .SetRGBA (_dee .R (),_dee .G (),_dee .B (),1);_bce .SetFillRule (_ca .FillRuleWinding );_bce .FillPreserve ();_fdb ,_cfc =_fdgf .ColorspaceStroking .ColorToRGB (_fdgf .ColorStroking );if _cfc !=nil {_ef .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_cfc );
|
|
return _cfc ;};_dee =_fdb .(*_gea .PdfColorDeviceRGB );_bce .SetRGBA (_dee .R (),_dee .G (),_dee .B (),1);_bce .Stroke ();case "\u0042\u002a":_gff ,_eaf :=_fdgf .ColorspaceNonStroking .ColorToRGB (_fdgf .ColorNonStroking );if _eaf !=nil {_ef .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",_eaf );
|
|
return _eaf ;};_gde :=_gff .(*_gea .PdfColorDeviceRGB );_bce .SetRGBA (_gde .R (),_gde .G (),_gde .B (),1);_bce .SetFillRule (_ca .FillRuleEvenOdd );_bce .FillPreserve ();_gff ,_eaf =_fdgf .ColorspaceStroking .ColorToRGB (_fdgf .ColorStroking );if _eaf !=nil {_ef .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",_eaf );
|
|
return _eaf ;};_gde =_gff .(*_gea .PdfColorDeviceRGB );_bce .SetRGBA (_gde .R (),_gde .G (),_gde .B (),1);_bce .Stroke ();case "\u0062":_faf ,_cce :=_fdgf .ColorspaceNonStroking .ColorToRGB (_fdgf .ColorNonStroking );if _cce !=nil {_ef .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",_cce );
|
|
return _cce ;};_ccde :=_faf .(*_gea .PdfColorDeviceRGB );_bce .SetRGBA (_ccde .R (),_ccde .G (),_ccde .B (),1);_bce .ClosePath ();_bce .NewSubPath ();_bce .SetFillRule (_ca .FillRuleWinding );_bce .FillPreserve ();_faf ,_cce =_fdgf .ColorspaceStroking .ColorToRGB (_fdgf .ColorStroking );
|
|
if _cce !=nil {_ef .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",_cce );return _cce ;};_ccde =_faf .(*_gea .PdfColorDeviceRGB );_bce .SetRGBA (_ccde .R (),_ccde .G (),_ccde .B (),1);
|
|
_bce .Stroke ();case "\u0062\u002a":_bce .ClosePath ();_bac ,_cdb :=_fdgf .ColorspaceNonStroking .ColorToRGB (_fdgf .ColorNonStroking );if _cdb !=nil {_ef .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",_cdb );
|
|
return _cdb ;};_gca :=_bac .(*_gea .PdfColorDeviceRGB );_bce .SetRGBA (_gca .R (),_gca .G (),_gca .B (),1);_bce .NewSubPath ();_bce .SetFillRule (_ca .FillRuleEvenOdd );_bce .FillPreserve ();_bac ,_cdb =_fdgf .ColorspaceStroking .ColorToRGB (_fdgf .ColorStroking );
|
|
if _cdb !=nil {_ef .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",_cdb );return _cdb ;};_gca =_bac .(*_gea .PdfColorDeviceRGB );_bce .SetRGBA (_gca .R (),_gca .G (),_gca .B (),1);
|
|
_bce .Stroke ();case "\u006e":_bce .ClearPath ();case "\u0057":_bce .SetFillRule (_ca .FillRuleWinding );_bce .ClipPreserve ();case "\u0057\u002a":_bce .SetFillRule (_ca .FillRuleEvenOdd );_bce .ClipPreserve ();case "\u0072\u0067":_beg ,_acf :=_fdgf .ColorNonStroking .(*_gea .PdfColorDeviceRGB );
|
|
if !_acf {_ef .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",_fdgf .ColorNonStroking );return nil ;};_bce .SetFillRGBA (_beg .R (),_beg .G (),_beg .B (),1);
|
|
case "\u0052\u0047":_gb ,_cfa :=_fdgf .ColorStroking .(*_gea .PdfColorDeviceRGB );if !_cfa {_ef .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",_fdgf .ColorStroking );
|
|
return nil ;};_bce .SetStrokeRGBA (_gb .R (),_gb .G (),_gb .B (),1);case "\u006b":_fab ,_fdge :=_fdgf .ColorNonStroking .(*_gea .PdfColorDeviceCMYK );if !_fdge {_ef .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",_fdgf .ColorNonStroking );
|
|
return nil ;};_dga ,_afb :=_fdgf .ColorspaceNonStroking .ColorToRGB (_fab );if _afb !=nil {_ef .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",_fdgf .ColorNonStroking );
|
|
return nil ;};_fbg ,_fdge :=_dga .(*_gea .PdfColorDeviceRGB );if !_fdge {_ef .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",_dga );return nil ;
|
|
};_bce .SetFillRGBA (_fbg .R (),_fbg .G (),_fbg .B (),1);case "\u004b":_cdf ,_gcac :=_fdgf .ColorStroking .(*_gea .PdfColorDeviceCMYK );if !_gcac {_ef .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",_fdgf .ColorStroking );
|
|
return nil ;};_dfe ,_fdf :=_fdgf .ColorspaceStroking .ColorToRGB (_cdf );if _fdf !=nil {_ef .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",_fdgf .ColorStroking );
|
|
return nil ;};_dce ,_gcac :=_dfe .(*_gea .PdfColorDeviceRGB );if !_gcac {_ef .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",_dfe );return nil ;
|
|
};_bce .SetStrokeRGBA (_dce .R (),_dce .G (),_dce .B (),1);case "\u0067":_fcd ,_dagb :=_fdgf .ColorNonStroking .(*_gea .PdfColorDeviceGray );if !_dagb {_ef .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",_fdgf .ColorNonStroking );
|
|
return nil ;};_efd ,_dde :=_fdgf .ColorspaceNonStroking .ColorToRGB (_fcd );if _dde !=nil {_ef .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",_fdgf .ColorNonStroking );
|
|
return nil ;};_cbcg ,_dagb :=_efd .(*_gea .PdfColorDeviceRGB );if !_dagb {_ef .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",_efd );return nil ;
|
|
};_bce .SetFillRGBA (_cbcg .R (),_cbcg .G (),_cbcg .B (),1);case "\u0047":_cfgbf ,_aaa :=_fdgf .ColorStroking .(*_gea .PdfColorDeviceGray );if !_aaa {_ef .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",_fdgf .ColorStroking );
|
|
return nil ;};_gefb ,_cgd :=_fdgf .ColorspaceStroking .ColorToRGB (_cfgbf );if _cgd !=nil {_ef .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",_fdgf .ColorStroking );
|
|
return nil ;};_ccda ,_aaa :=_gefb .(*_gea .PdfColorDeviceRGB );if !_aaa {_ef .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",_gefb );return nil ;
|
|
};_bce .SetStrokeRGBA (_ccda .R (),_ccda .G (),_ccda .B (),1);case "\u0063\u0073","\u0073\u0063","\u0073\u0063\u006e":_eac ,_feg :=_fdgf .ColorspaceNonStroking .ColorToRGB (_fdgf .ColorNonStroking );if _feg !=nil {_ef .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",_fdgf .ColorNonStroking );
|
|
return nil ;};_fea ,_eafb :=_eac .(*_gea .PdfColorDeviceRGB );if !_eafb {_ef .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",_eac );return nil ;
|
|
};_bce .SetFillRGBA (_fea .R (),_fea .G (),_fea .B (),1);case "\u0043\u0053","\u0053\u0043","\u0053\u0043\u004e":_ec ,_cae :=_fdgf .ColorspaceStroking .ColorToRGB (_fdgf .ColorStroking );if _cae !=nil {_ef .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",_fdgf .ColorStroking );
|
|
return nil ;};_egd ,_bge :=_ec .(*_gea .PdfColorDeviceRGB );if !_bge {_ef .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",_ec );return nil ;
|
|
};_bce .SetStrokeRGBA (_egd .R (),_egd .G (),_egd .B (),1);case "\u0044\u006f":if len (_bca .Params )!=1{return _efe ;};_ffg ,_ag :=_eg .GetName (_bca .Params [0]);if !_ag {return _afdc ;};_ ,_bdf :=_ea .GetXObjectByName (*_ffg );switch _bdf {case _gea .XObjectTypeImage :_ef .Log .Debug ("\u0058\u004f\u0062\u006a\u0065\u0063\u0074\u0020\u0069\u006d\u0061\u0067e\u003a\u0020\u0025\u0073",_ffg .String ());
|
|
_cec ,_fac :=_ea .GetXObjectImageByName (*_ffg );if _fac !=nil {return _fac ;};_deed ,_fac :=_cec .ToImage ();if _fac !=nil {return _fac ;};if _aea :=_cec .ColorSpace ;_aea !=nil {var _deedf bool ;switch _aea .(type ){case *_gea .PdfColorspaceSpecialIndexed :_deedf =true ;
|
|
};if _deedf {if _fgg ,_cbf :=_aea .ImageToRGB (*_deed );_cbf !=nil {_ef .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 {_deed =&_fgg ;};};};_fgc :=_bce .FillPattern ().ColorAt (0,0);var _fafb _ge .Image ;if _cec .Mask !=nil {if _fafb ,_fac =_ddc (_cec .Mask ,_fgc );_fac !=nil {_ef .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 _agf _ge .Image ;if _bace ,_ :=_eg .GetBoolVal (_cec .ImageMask );_bace {_agf =_dba (_deed ,_fgc );}else {_agf ,_fac =_deed .ToGoImage ();if _fac !=nil {return _fac ;};};if _fafb !=nil {_agf =_fdda (_agf ,_fafb );};_eea :=_agf .Bounds ();_bce .Push ();
|
|
_bce .Scale (1.0/float64 (_eea .Dx ()),-1.0/float64 (_eea .Dy ()));_bce .DrawImageAnchored (_agf ,0,0,0,1);_bce .Pop ();case _gea .XObjectTypeForm :_ef .Log .Debug ("\u0058\u004fb\u006a\u0065\u0063t\u0020\u0066\u006f\u0072\u006d\u003a\u0020\u0025\u0073",_ffg .String ());
|
|
_eda ,_gdea :=_ea .GetXObjectFormByName (*_ffg );if _gdea !=nil {return _gdea ;};_gcf ,_gdea :=_eda .GetContentStream ();if _gdea !=nil {return _gdea ;};_feb :=_eda .Resources ;if _feb ==nil {_feb =_ea ;};_bce .Push ();if _eda .Matrix !=nil {_bcb ,_eec :=_eg .GetArray (_eda .Matrix );
|
|
if !_eec {return _afdc ;};_ead ,_bag :=_eg .GetNumbersAsFloat (_bcb .Elements ());if _bag !=nil {return _bag ;};if len (_ead )!=6{return _efe ;};_fge :=_cc .NewMatrix (_ead [0],_ead [1],_ead [2],_ead [3],_ead [4],_ead [5]);_bce .SetMatrix (_bce .Matrix ().Mult (_fge ));
|
|
};if _eda .BBox !=nil {_ebbf ,_bcbf :=_eg .GetArray (_eda .BBox );if !_bcbf {return _afdc ;};_ebda ,_ddb :=_eg .GetNumbersAsFloat (_ebbf .Elements ());if _ddb !=nil {return _ddb ;};if len (_ebda )!=4{_ef .Log .Debug ("\u004c\u0065\u006e\u0020\u003d\u0020\u0025\u0064",len (_ebda ));
|
|
return _efe ;};_bce .DrawRectangle (_ebda [0],_ebda [1],_ebda [2]-_ebda [0],_ebda [3]-_ebda [1]);_bce .SetRGBA (1,0,0,1);_bce .Clip ();}else {_ef .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");
|
|
};_gdea =_cff .renderContentStream (_bce ,string (_gcf ),_feb );if _gdea !=nil {return _gdea ;};_bce .Pop ();};case "\u0042\u0049":if len (_bca .Params )!=1{return _efe ;};_caa ,_dcf :=_bca .Params [0].(*_de .ContentStreamInlineImage );if !_dcf {return nil ;
|
|
};_eff ,_ffae :=_caa .ToImage (_ea );if _ffae !=nil {return _ffae ;};_dgd ,_ffae :=_eff .ToGoImage ();if _ffae !=nil {return _ffae ;};_abd :=_dgd .Bounds ();_bce .Push ();_bce .Scale (1.0/float64 (_abd .Dx ()),-1.0/float64 (_abd .Dy ()));_bce .DrawImageAnchored (_dgd ,0,0,0,1);
|
|
_bce .Pop ();case "\u0042\u0054":_db .Reset ();case "\u0045\u0054":_db .Reset ();case "\u0054\u0072":if len (_bca .Params )!=1{return _efe ;};_bdge ,_egc :=_eg .GetNumberAsFloat (_bca .Params [0]);if _egc !=nil {return _egc ;};_db .Tr =_ca .TextRenderingMode (_bdge );
|
|
case "\u0054\u004c":if len (_bca .Params )!=1{return _efe ;};_dfa ,_egaa :=_eg .GetNumberAsFloat (_bca .Params [0]);if _egaa !=nil {return _egaa ;};_db .Tl =_dfa ;case "\u0054\u0063":if len (_bca .Params )!=1{return _efe ;};_dbbc ,_gaa :=_eg .GetNumberAsFloat (_bca .Params [0]);
|
|
if _gaa !=nil {return _gaa ;};_ef .Log .Debug ("\u0054\u0063\u003a\u0020\u0025\u0076",_dbbc );_db .Tc =_dbbc ;case "\u0054\u0077":if len (_bca .Params )!=1{return _efe ;};_egcb ,_aga :=_eg .GetNumberAsFloat (_bca .Params [0]);if _aga !=nil {return _aga ;
|
|
};_ef .Log .Debug ("\u0054\u0077\u003a\u0020\u0025\u0076",_egcb );_db .Tw =_egcb ;case "\u0054\u007a":if len (_bca .Params )!=1{return _efe ;};_aag ,_bcf :=_eg .GetNumberAsFloat (_bca .Params [0]);if _bcf !=nil {return _bcf ;};_db .Th =_aag ;case "\u0054\u0073":if len (_bca .Params )!=1{return _efe ;
|
|
};_bbd ,_acbb :=_eg .GetNumberAsFloat (_bca .Params [0]);if _acbb !=nil {return _acbb ;};_db .Ts =_bbd ;case "\u0054\u0064":if len (_bca .Params )!=2{return _efe ;};_eba ,_gdgf :=_eg .GetNumbersAsFloat (_bca .Params );if _gdgf !=nil {return _gdgf ;};_ef .Log .Debug ("\u0054\u0064\u003a\u0020\u0025\u0076",_eba );
|
|
_db .ProcTd (_eba [0],_eba [1]);case "\u0054\u0044":if len (_bca .Params )!=2{return _efe ;};_efc ,_fdfa :=_eg .GetNumbersAsFloat (_bca .Params );if _fdfa !=nil {return _fdfa ;};_ef .Log .Debug ("\u0054\u0044\u003a\u0020\u0025\u0076",_efc );_db .ProcTD (_efc [0],_efc [1]);
|
|
case "\u0054\u002a":_db .ProcTStar ();case "\u0054\u006d":if len (_bca .Params )!=6{return _efe ;};_edbe ,_edg :=_eg .GetNumbersAsFloat (_bca .Params );if _edg !=nil {return _edg ;};_ef .Log .Debug ("\u0054\u0065x\u0074\u0020\u006da\u0074\u0072\u0069\u0078\u003a\u0020\u0025\u002b\u0076",_edbe );
|
|
_db .ProcTm (_edbe [0],_edbe [1],_edbe [2],_edbe [3],_edbe [4],_edbe [5]);case "\u0027":if len (_bca .Params )!=1{return _efe ;};_gcd ,_fgf :=_eg .GetStringBytes (_bca .Params [0]);if !_fgf {return _afdc ;};_ef .Log .Debug ("\u0027\u0020\u0073t\u0072\u0069\u006e\u0067\u003a\u0020\u0025\u0073",string (_gcd ));
|
|
_db .ProcQ (_gcd ,_bce );case "\u0022":if len (_bca .Params )!=3{return _efe ;};_dced ,_fdd :=_eg .GetNumberAsFloat (_bca .Params [0]);if _fdd !=nil {return _fdd ;};_bec ,_fdd :=_eg .GetNumberAsFloat (_bca .Params [1]);if _fdd !=nil {return _fdd ;};_dfeb ,_cee :=_eg .GetStringBytes (_bca .Params [2]);
|
|
if !_cee {return _afdc ;};_db .ProcDQ (_dfeb ,_dced ,_bec ,_bce );case "\u0054\u006a":if len (_bca .Params )!=1{return _efe ;};_bdgc ,_gffc :=_eg .GetStringBytes (_bca .Params [0]);if !_gffc {return _afdc ;};_ef .Log .Debug ("\u0054j\u0020s\u0074\u0072\u0069\u006e\u0067\u003a\u0020\u0060\u0025\u0073\u0060",string (_bdgc ));
|
|
_db .ProcTj (_bdgc ,_bce );case "\u0054\u004a":if len (_bca .Params )!=1{return _efe ;};_bf ,_efg :=_eg .GetArray (_bca .Params [0]);if !_efg {_ef .Log .Debug ("\u0054\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_bf );return _afdc ;};_ef .Log .Debug ("\u0054\u004a\u0020\u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u002b\u0076",_bf );
|
|
for _ ,_agc :=range _bf .Elements (){switch _fdc :=_agc .(type ){case *_eg .PdfObjectString :if _fdc !=nil {_db .ProcTj (_fdc .Bytes (),_bce );};case *_eg .PdfObjectFloat ,*_eg .PdfObjectInteger :_ggd ,_aaab :=_eg .GetNumberAsFloat (_fdc );if _aaab ==nil {_db .Translate (-_ggd *0.001*_db .Tf .Size *_db .Th /100.0,0);
|
|
};};};case "\u0054\u0066":if len (_bca .Params )!=2{return _efe ;};_ef .Log .Debug ("\u0025\u0023\u0076",_bca .Params );_efgd ,_edaf :=_eg .GetName (_bca .Params [0]);if !_edaf ||_efgd ==nil {_ef .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",_bca .Params [0]);
|
|
return _afdc ;};_ef .Log .Debug ("\u0046\u006f\u006e\u0074\u0020\u006e\u0061\u006d\u0065\u003a\u0020\u0025\u0073",_efgd .String ());_gcbe ,_gefe :=_eg .GetNumberAsFloat (_bca .Params [1]);if _gefe !=nil {_ef .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",_bca .Params [1]);
|
|
return _afdc ;};_ef .Log .Debug ("\u0046\u006f\u006e\u0074\u0020\u0073\u0069\u007a\u0065\u003a\u0020\u0025\u0076",_gcbe );_bad ,_fcbg :=_ea .GetFontByName (*_efgd );if !_fcbg {_ef .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0046\u006f\u006e\u0074\u0020\u0025s\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064",_efgd .String ());
|
|
return _b .New ("\u0066\u006f\u006e\u0074\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};_ef .Log .Debug ("\u0046\u006f\u006e\u0074\u003a\u0020\u0025\u0054",_bad );_bdfd ,_edaf :=_eg .GetDict (_bad );if !_edaf {_ef .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 _afdc ;};_ebdf ,_gefe :=_gea .NewPdfFontFromPdfObject (_bdfd );if _gefe !=nil {_ef .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 _gefe ;};_gcag :=_ebdf .BaseFont ();if _gcag ==""{_gcag =_efgd .String ();};_bfa ,_edaf :=_gdgd [_gcag ];if !_edaf {_bfa ,_gefe =_ca .NewTextFont (_ebdf ,_gcbe );if _gefe !=nil {_ef .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gefe );
|
|
};};if _bfa ==nil {if len (_gcag )> 7&&_gcag [6]=='+'{_gcag =_gcag [7:];};_eecb :=[]string {_gcag ,"\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 _ ,_deg :=range _eecb {_ef .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",_deg );if _bfa ,_edaf =_gdgd [_deg ];
|
|
_edaf {break ;};_egf :=_da .Match (_deg );if _egf ==nil {_ef .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",_deg );continue ;};_bfa ,_gefe =_ca .NewTextFontFromPath (_egf .Filename ,_gcbe );
|
|
if _gefe !=nil {_ef .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",_egf .Filename );continue ;};_ef .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",_gcag ,_egf .Name ,_egf .Filename );
|
|
_gdgd [_deg ]=_bfa ;break ;};};if _bfa ==nil {_ef .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");};_db .ProcTf (_bfa .WithSize (_gcbe ,_ebdf ));case "\u0042\u004d\u0043","\u0042\u0044\u0043":case "\u0045\u004d\u0043":default:_ef .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",_bca .Operand );
|
|
};return nil ;});_acb =_abg .Process (_ed );if _acb !=nil {return _acb ;};return nil ;};func _gfd (_gab string ,_eae _ge .Image ,_agg int )error {_dea ,_bfe :=_c .Create (_gab );if _bfe !=nil {return _bfe ;};defer _dea .Close ();return _af .Encode (_dea ,_eae ,&_af .Options {Quality :_agg });
|
|
};func (_ced renderer )renderPage (_ac _ca .Context ,_fdg *_gea .PdfPage ,_ccc _cc .Matrix )error {_fca ,_gdg :=_fdg .GetAllContentStreams ();if _gdg !=nil {return _gdg ;};if _baa :=_ccc ;!_baa .Identity (){_fca =_gf .Sprintf ("%\u002e\u0032\u0066\u0020\u0025\u002e2\u0066\u0020\u0025\u002e\u0032\u0066 \u0025\u002e\u0032\u0066\u0020\u0025\u002e2\u0066\u0020\u0025\u002e\u0032\u0066\u0020\u0063\u006d\u0020%\u0073",_baa [0],_baa [1],_baa [3],_baa [4],_baa [6],_baa [7],_fca );
|
|
};_ac .Translate (0,float64 (_ac .Height ()));_ac .Scale (1,-1);_ac .Push ();_ac .SetRGBA (1,1,1,1);_ac .DrawRectangle (0,0,float64 (_ac .Width ()),float64 (_ac .Height ()));_ac .Fill ();_ac .Pop ();_ac .SetLineWidth (1.0);_ac .SetRGBA (0,0,0,1);return _ced .renderContentStream (_ac ,_fca ,_fdg .Resources );
|
|
};
|
|
|
|
// NewImageDevice returns a new image device.
|
|
func NewImageDevice ()*ImageDevice {const _ab ="r\u0065\u006e\u0064\u0065r.\u004ee\u0077\u0049\u006d\u0061\u0067e\u0044\u0065\u0076\u0069\u0063\u0065";_dc .TrackUse (_ab );return &ImageDevice {};};
|
|
|
|
// Render converts the specified PDF page into an image and returns the result.
|
|
func (_bc *ImageDevice )Render (page *_gea .PdfPage )(_ge .Image ,error ){_df ,_ce :=page .GetMediaBox ();if _ce !=nil {return nil ,_ce ;};_df .Normalize ();_egb :=page .CropBox ;var _fe ,_fcb float64 ;if _egb !=nil {_egb .Normalize ();_fe ,_fcb =_egb .Width (),_egb .Height ();
|
|
};_afd :=page .Rotate ;_cad ,_gg ,_eb ,_gd :=_df .Llx ,_df .Lly ,_df .Width (),_df .Height ();_ccg :=_cc .IdentityMatrix ();if _afd !=nil &&*_afd %360!=0&&*_afd %90==0{_cfg :=-float64 (*_afd );_gcb :=_bgc (_eb ,_gd ,_cfg );_ccg =_ccg .Translate ((_gcb .Width -_eb )/2+_eb /2,(_gcb .Height -_gd )/2+_gd /2).Rotate (_cfg *_d .Pi /180).Translate (-_eb /2,-_gd /2);
|
|
_eb ,_gd =_gcb .Width ,_gcb .Height ;if _egb !=nil {_ebb :=_bgc (_fe ,_fcb ,_cfg );_fe ,_fcb =_ebb .Width ,_ebb .Height ;};};if _cad !=0||_gg !=0{_ccg =_ccg .Translate (-_cad ,-_gg );};_bc ._dda =1.0;if _bc .OutputWidth !=0{_fa :=_eb ;if _egb !=nil {_fa =_fe ;
|
|
};_bc ._dda =float64 (_bc .OutputWidth )/_fa ;_eb ,_gd ,_fe ,_fcb =_eb *_bc ._dda ,_gd *_bc ._dda ,_fe *_bc ._dda ,_fcb *_bc ._dda ;_ccg =_cc .ScaleMatrix (_bc ._dda ,_bc ._dda ).Mult (_ccg );};_aa :=_bed .NewContext (int (_eb ),int (_gd ));if _ba :=_bc .renderPage (_aa ,page ,_ccg );
|
|
_ba !=nil {return nil ,_ba ;};_fg :=_aa .Image ();if _egb !=nil {_deb ,_beda :=(_egb .Llx -_cad )*_bc ._dda ,(_egb .Lly -_gg )*_bc ._dda ;_cb :=_ge .Rect (0,0,int (_fe ),int (_fcb ));_dd :=_ge .Pt (int (_deb ),int (_gd -_beda -_fcb ));_bea :=_ge .NewRGBA (_cb );
|
|
_f .Draw (_bea ,_cb ,_fg ,_dd ,_f .Src );_fg =_bea ;};return _fg ,nil ;};
|
|
|
|
// RenderToPath converts the specified PDF page into an image and saves the
|
|
// result at the specified location.
|
|
func (_fec *ImageDevice )RenderToPath (page *_gea .PdfPage ,outputPath string )error {_fd ,_ee :=_fec .Render (page );if _ee !=nil {return _ee ;};_cfgb :=_gc .ToLower (_e .Ext (outputPath ));if _cfgb ==""{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 _cfgb {case "\u002e\u0070\u006e\u0067":return _fgfb (outputPath ,_fd );case "\u002e\u006a\u0070\u0067","\u002e\u006a\u0070e\u0067":return _gfd (outputPath ,_fd ,100);};return _gf .Errorf ("\u0075\u006e\u0072\u0065\u0063\u006fg\u006e\u0069\u007a\u0065\u0064\u0020\u006f\u0075\u0074\u0070\u0075\u0074\u0020f\u0069\u006c\u0065\u0020\u0074\u0079\u0070e\u003a\u0020\u0025\u0073",_cfgb );
|
|
};func _ddc (_bgg _eg .PdfObject ,_gabg _be .Color )(_ge .Image ,error ){_fbf ,_dca :=_eg .GetStream (_bgg );if !_dca {return nil ,nil ;};_fee ,_ddeg :=_gea .NewXObjectImageFromStream (_fbf );if _ddeg !=nil {return nil ,_ddeg ;};_gaf ,_ddeg :=_fee .ToImage ();
|
|
if _ddeg !=nil {return nil ,_ddeg ;};return _dba (_gaf ,_gabg ),nil ;};func _dba (_ffef *_gea .Image ,_ebac _be .Color )_ge .Image {_cfe ,_becd :=int (_ffef .Width ),int (_ffef .Height );_cgag :=_ge .NewRGBA (_ge .Rect (0,0,_cfe ,_becd ));for _fdca :=0;
|
|
_fdca < _becd ;_fdca ++{for _eaca :=0;_eaca < _cfe ;_eaca ++{_cbb ,_cgc :=_ffef .ColorAt (_eaca ,_fdca );if _cgc !=nil {_ef .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",_eaca ,_fdca );
|
|
continue ;};_aec ,_edgc ,_gee ,_ :=_cbb .RGBA ();var _fda _be .Color ;if _aec +_edgc +_gee ==0{_fda =_ebac ;}else {_fda =_be .Transparent ;};_cgag .Set (_eaca ,_fdca ,_fda );};};return _cgag ;};
|
|
|
|
// ImageDevice is used to render PDF pages to image targets.
|
|
type ImageDevice struct{renderer ;
|
|
|
|
// OutputWidth represents the width of the rendered images in pixels.
|
|
// The heights of the output images are calculated based on the selected
|
|
// width and the original height of each rendered page.
|
|
OutputWidth int ;};func _bgc (_acac ,_eeb ,_eag float64 )_cf .BoundingBox {return _cf .Path {Points :[]_cf .Point {_cf .NewPoint (0,0).Rotate (_eag ),_cf .NewPoint (_acac ,0).Rotate (_eag ),_cf .NewPoint (0,_eeb ).Rotate (_eag ),_cf .NewPoint (_acac ,_eeb ).Rotate (_eag )}}.GetBoundingBox ();
|
|
};var (_afdc =_b .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");_efe =_b .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072"););type renderer struct{_dda float64 };
|