mirror of
https://github.com/unidoc/unipdf.git
synced 2025-04-26 13:48:55 +08:00
149 lines
39 KiB
Go
149 lines
39 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 (_f "errors";_eb "fmt";_ebb "github.com/adrg/sysfont";_ea "github.com/unidoc/unipdf/v3/common";_bf "github.com/unidoc/unipdf/v3/contentstream";_ec "github.com/unidoc/unipdf/v3/contentstream/draw";_bb "github.com/unidoc/unipdf/v3/core";
|
|
_be "github.com/unidoc/unipdf/v3/internal/license";_eaca "github.com/unidoc/unipdf/v3/internal/transform";_ecg "github.com/unidoc/unipdf/v3/model";_eac "github.com/unidoc/unipdf/v3/render/internal/context";_aac "github.com/unidoc/unipdf/v3/render/internal/context/imagerender";
|
|
_c "golang.org/x/image/draw";_b "image";_ff "image/color";_e "image/draw";_ad "image/jpeg";_aa "image/png";_a "math";_ga "os";_fa "path/filepath";_fc "strings";);
|
|
|
|
// NewImageDevice returns a new image device.
|
|
func NewImageDevice ()*ImageDevice {const _cc ="r\u0065\u006e\u0064\u0065r.\u004ee\u0077\u0049\u006d\u0061\u0067e\u0044\u0065\u0076\u0069\u0063\u0065";_be .TrackUse (_cc );return &ImageDevice {};};func _bbd (_fdff string ,_ffg _b .Image ,_dbdb int )error {_abb ,_ddb :=_ga .Create (_fdff );
|
|
if _ddb !=nil {return _ddb ;};defer _abb .Close ();return _ad .Encode (_abb ,_ffg ,&_ad .Options {Quality :_dbdb });};func _cdff (_fbcc _bb .PdfObject ,_eba _ff .Color )(_b .Image ,error ){_cda ,_egfe :=_bb .GetStream (_fbcc );if !_egfe {return nil ,nil ;
|
|
};_eefa ,_gca :=_ecg .NewXObjectImageFromStream (_cda );if _gca !=nil {return nil ,_gca ;};_faf ,_gca :=_eefa .ToImage ();if _gca !=nil {return nil ,_gca ;};return _gcc (_faf ,_eba ),nil ;};func _dbe (_gbcf string ,_cbgcd _b .Image )error {_cbb ,_eda :=_ga .Create (_gbcf );
|
|
if _eda !=nil {return _eda ;};defer _cbb .Close ();return _aa .Encode (_cbb ,_cbgcd );};func _ced (_bea *_ecg .Image ,_gee _ff .Color )_b .Image {_gcd ,_dcda :=int (_bea .Width ),int (_bea .Height );_ecfdb :=_b .NewRGBA (_b .Rect (0,0,_gcd ,_dcda ));for _agb :=0;
|
|
_agb < _dcda ;_agb ++{for _bee :=0;_bee < _gcd ;_bee ++{_dcf ,_gbgef :=_bea .ColorAt (_bee ,_agb );if _gbgef !=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",_bee ,_agb );
|
|
continue ;};_bac ,_edgde ,_acd ,_ :=_dcf .RGBA ();var _gabg _ff .Color ;if _bac +_edgde +_acd ==0{_gabg =_gee ;}else {_gabg =_ff .Transparent ;};_ecfdb .Set (_bee ,_agb ,_gabg );};};return _ecfdb ;};type renderer struct{_aga float64 };func (_cbg renderer )renderPage (_eaf _eac .Context ,_eae *_ecg .PdfPage ,_feg _eaca .Matrix )error {_ee ,_df :=_eae .GetAllContentStreams ();
|
|
if _df !=nil {return _df ;};if _bfd :=_feg ;!_bfd .Identity (){_ee =_eb .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",_bfd [0],_bfd [1],_bfd [3],_bfd [4],_bfd [6],_bfd [7],_ee );
|
|
};_eaf .Translate (0,float64 (_eaf .Height ()));_eaf .Scale (1,-1);_eaf .Push ();_eaf .SetRGBA (1,1,1,1);_eaf .DrawRectangle (0,0,float64 (_eaf .Width ()),float64 (_eaf .Height ()));_eaf .Fill ();_eaf .Pop ();_eaf .SetLineWidth (1.0);_eaf .SetRGBA (0,0,0,1);
|
|
return _cbg .renderContentStream (_eaf ,_ee ,_eae .Resources );};func _bdc (_beb _bb .PdfObject ,_ddac _ff .Color )(_b .Image ,error ){_fcc ,_cffb :=_bb .GetStream (_beb );if !_cffb {return nil ,nil ;};_eaac ,_cede :=_ecg .NewXObjectImageFromStream (_fcc );
|
|
if _cede !=nil {return nil ,_cede ;};_fffd ,_cede :=_eaac .ToImage ();if _cede !=nil {return nil ,_cede ;};return _ced (_fffd ,_ddac ),nil ;};var (_aae =_f .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
|
|
_d =_f .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072"););func (_afg renderer )renderContentStream (_eag _eac .Context ,_dfe string ,_ccde *_ecg .PdfPageResources )error {_gab ,_dg :=_bf .NewContentStreamParser (_dfe ).Parse ();
|
|
if _dg !=nil {return _dg ;};_dgd :=_eag .TextState ();_dgd .GlobalScale =_afg ._aga ;_ed :=map[string ]*_eac .TextFont {};_cbe :=_ebb .NewFinder (&_ebb .FinderOpts {Extensions :[]string {"\u002e\u0074\u0074\u0066","\u002e\u0074\u0074\u0063"}});_fdg :=_bf .NewContentStreamProcessor (*_gab );
|
|
_fdg .AddHandler (_bf .HandlerConditionEnumAllOperands ,"",func (_dga *_bf .ContentStreamOperation ,_gb _bf .GraphicsState ,_bgg *_ecg .PdfPageResources )error {_ea .Log .Debug ("\u0050\u0072\u006f\u0063\u0065\u0073\u0073\u0069\u006e\u0067\u0020\u0025\u0073",_dga .Operand );
|
|
switch _dga .Operand {case "\u0071":_eag .Push ();case "\u0051":_eag .Pop ();_dgd =_eag .TextState ();case "\u0063\u006d":if len (_dga .Params )!=6{return _d ;};_bd ,_cbgc :=_bb .GetNumbersAsFloat (_dga .Params );if _cbgc !=nil {return _cbgc ;};_aab :=_eaca .NewMatrix (_bd [0],_bd [1],_bd [2],_bd [3],_bd [4],_bd [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",_aab );_eag .SetMatrix (_eag .Matrix ().Mult (_aab ));case "\u0077":if len (_dga .Params )!=1{return _d ;
|
|
};_fed ,_cf :=_bb .GetNumbersAsFloat (_dga .Params );if _cf !=nil {return _cf ;};_eag .SetLineWidth (_fed [0]);case "\u004a":if len (_dga .Params )!=1{return _d ;};_bbc ,_fegc :=_bb .GetIntVal (_dga .Params [0]);if !_fegc {return _aae ;};switch _bbc {case 0:_eag .SetLineCap (_eac .LineCapButt );
|
|
case 1:_eag .SetLineCap (_eac .LineCapRound );case 2:_eag .SetLineCap (_eac .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",_bbc );
|
|
return _d ;};case "\u006a":if len (_dga .Params )!=1{return _d ;};_ebbd ,_fec :=_bb .GetIntVal (_dga .Params [0]);if !_fec {return _aae ;};switch _ebbd {case 0:_eag .SetLineJoin (_eac .LineJoinBevel );case 1:_eag .SetLineJoin (_eac .LineJoinRound );case 2:_eag .SetLineJoin (_eac .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",_ebbd );return _d ;};case "\u004d":if len (_dga .Params )!=1{return _d ;};_fag ,_ebd :=_bb .GetNumbersAsFloat (_dga .Params );
|
|
if _ebd !=nil {return _ebd ;};_ =_fag ;_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 (_dga .Params )!=2{return _d ;};_ecf ,_ce :=_bb .GetArray (_dga .Params [0]);
|
|
if !_ce {return _aae ;};_gde ,_ce :=_bb .GetIntVal (_dga .Params [1]);if !_ce {return _aae ;};_fbc ,_fbce :=_bb .GetNumbersAsFloat (_ecf .Elements ());if _fbce !=nil {return _fbce ;};_eag .SetDash (_fbc ...);_ =_gde ;_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 (_dga .Params )!=1{return _d ;};_dgab ,_ace :=_bb .GetName (_dga .Params [0]);if !_ace {return _aae ;};if _dgab ==nil {return _d ;};_aaf ,_ace :=_bgg .GetExtGState (*_dgab );if !_ace {_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",*_dgab );
|
|
return _f .New ("\u0072e\u0073o\u0075\u0072\u0063\u0065\u0020n\u006f\u0074 \u0066\u006f\u0075\u006e\u0064");};_dc ,_ace :=_bb .GetDict (_aaf );if !_ace {_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 _aae ;};_ea .Log .Debug ("G\u0053\u0020\u0064\u0069\u0063\u0074\u003a\u0020\u0025\u0073",_dc .String ());case "\u006d":if len (_dga .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",_d );
|
|
return nil ;};_ccdb ,_cff :=_bb .GetNumbersAsFloat (_dga .Params );if _cff !=nil {return _cff ;};_ea .Log .Debug ("M\u006f\u0076\u0065\u0020\u0074\u006f\u003a\u0020\u0025\u0076",_ccdb );_eag .NewSubPath ();_eag .MoveTo (_ccdb [0],_ccdb [1]);case "\u006c":if len (_dga .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",_d );
|
|
return nil ;};_cac ,_dd :=_bb .GetNumbersAsFloat (_dga .Params );if _dd !=nil {return _dd ;};_eag .LineTo (_cac [0],_cac [1]);case "\u0063":if len (_dga .Params )!=6{return _d ;};_ddg ,_dfa :=_bb .GetNumbersAsFloat (_dga .Params );if _dfa !=nil {return _dfa ;
|
|
};_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",_ddg );_eag .CubicTo (_ddg [0],_ddg [1],_ddg [2],_ddg [3],_ddg [4],_ddg [5]);case "\u0076","\u0079":if len (_dga .Params )!=4{return _d ;
|
|
};_ba ,_bcf :=_bb .GetNumbersAsFloat (_dga .Params );if _bcf !=nil {return _bcf ;};_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",_ba );_eag .QuadraticTo (_ba [0],_ba [1],_ba [2],_ba [3]);
|
|
case "\u0068":_eag .ClosePath ();_eag .NewSubPath ();case "\u0072\u0065":if len (_dga .Params )!=4{return _d ;};_ccg ,_eeb :=_bb .GetNumbersAsFloat (_dga .Params );if _eeb !=nil {return _eeb ;};_eag .DrawRectangle (_ccg [0],_ccg [1],_ccg [2],_ccg [3]);
|
|
_eag .NewSubPath ();case "\u0053":_acb ,_bfdb :=_gb .ColorspaceStroking .ColorToRGB (_gb .ColorStroking );if _bfdb !=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",_bfdb );
|
|
return _bfdb ;};_fega ,_ffc :=_acb .(*_ecg .PdfColorDeviceRGB );if !_ffc {_ea .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _bfdb ;};_eag .SetRGBA (_fega .R (),_fega .G (),_fega .B (),1);
|
|
_eag .Stroke ();case "\u0073":_ffe ,_fdc :=_gb .ColorspaceStroking .ColorToRGB (_gb .ColorStroking );if _fdc !=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",_fdc );
|
|
return _fdc ;};_aaeg ,_fdgf :=_ffe .(*_ecg .PdfColorDeviceRGB );if !_fdgf {_ea .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _fdc ;};_eag .ClosePath ();_eag .NewSubPath ();
|
|
_eag .SetRGBA (_aaeg .R (),_aaeg .G (),_aaeg .B (),1);_eag .Stroke ();case "\u0066","\u0046":_acbc ,_fda :=_gb .ColorspaceNonStroking .ColorToRGB (_gb .ColorNonStroking );if _fda !=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",_fda );
|
|
return _fda ;};_eea ,_dcd :=_acbc .(*_ecg .PdfColorDeviceRGB );if !_dcd {_ea .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _fda ;};_eag .SetRGBA (_eea .R (),_eea .G (),_eea .B (),1);
|
|
_eag .SetFillRule (_eac .FillRuleWinding );_eag .Fill ();case "\u0066\u002a":_db ,_dbd :=_gb .ColorspaceNonStroking .ColorToRGB (_gb .ColorNonStroking );if _dbd !=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",_dbd );
|
|
return _dbd ;};_fdae ,_fedc :=_db .(*_ecg .PdfColorDeviceRGB );if !_fedc {_ea .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _dbd ;};_eag .SetRGBA (_fdae .R (),_fdae .G (),_fdae .B (),1);
|
|
_eag .SetFillRule (_eac .FillRuleEvenOdd );_eag .Fill ();case "\u0042":_aafa ,_cg :=_gb .ColorspaceNonStroking .ColorToRGB (_gb .ColorNonStroking );if _cg !=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",_cg );
|
|
return _cg ;};_gbg :=_aafa .(*_ecg .PdfColorDeviceRGB );_eag .SetRGBA (_gbg .R (),_gbg .G (),_gbg .B (),1);_eag .SetFillRule (_eac .FillRuleWinding );_eag .FillPreserve ();_aafa ,_cg =_gb .ColorspaceStroking .ColorToRGB (_gb .ColorStroking );if _cg !=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",_cg );
|
|
return _cg ;};_gbg =_aafa .(*_ecg .PdfColorDeviceRGB );_eag .SetRGBA (_gbg .R (),_gbg .G (),_gbg .B (),1);_eag .Stroke ();case "\u0042\u002a":_bcd ,_bba :=_gb .ColorspaceNonStroking .ColorToRGB (_gb .ColorNonStroking );if _bba !=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",_bba );
|
|
return _bba ;};_ebf :=_bcd .(*_ecg .PdfColorDeviceRGB );_eag .SetRGBA (_ebf .R (),_ebf .G (),_ebf .B (),1);_eag .SetFillRule (_eac .FillRuleEvenOdd );_eag .FillPreserve ();_bcd ,_bba =_gb .ColorspaceStroking .ColorToRGB (_gb .ColorStroking );if _bba !=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",_bba );
|
|
return _bba ;};_ebf =_bcd .(*_ecg .PdfColorDeviceRGB );_eag .SetRGBA (_ebf .R (),_ebf .G (),_ebf .B (),1);_eag .Stroke ();case "\u0062":_adf ,_ge :=_gb .ColorspaceNonStroking .ColorToRGB (_gb .ColorNonStroking );if _ge !=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",_ge );
|
|
return _ge ;};_edb :=_adf .(*_ecg .PdfColorDeviceRGB );_eag .SetRGBA (_edb .R (),_edb .G (),_edb .B (),1);_eag .ClosePath ();_eag .NewSubPath ();_eag .SetFillRule (_eac .FillRuleWinding );_eag .FillPreserve ();_adf ,_ge =_gb .ColorspaceStroking .ColorToRGB (_gb .ColorStroking );
|
|
if _ge !=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",_ge );return _ge ;};_edb =_adf .(*_ecg .PdfColorDeviceRGB );_eag .SetRGBA (_edb .R (),_edb .G (),_edb .B (),1);
|
|
_eag .Stroke ();case "\u0062\u002a":_eag .ClosePath ();_aeb ,_fdgc :=_gb .ColorspaceNonStroking .ColorToRGB (_gb .ColorNonStroking );if _fdgc !=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",_fdgc );
|
|
return _fdgc ;};_eeag :=_aeb .(*_ecg .PdfColorDeviceRGB );_eag .SetRGBA (_eeag .R (),_eeag .G (),_eeag .B (),1);_eag .NewSubPath ();_eag .SetFillRule (_eac .FillRuleEvenOdd );_eag .FillPreserve ();_aeb ,_fdgc =_gb .ColorspaceStroking .ColorToRGB (_gb .ColorStroking );
|
|
if _fdgc !=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",_fdgc );return _fdgc ;};_eeag =_aeb .(*_ecg .PdfColorDeviceRGB );_eag .SetRGBA (_eeag .R (),_eeag .G (),_eeag .B (),1);
|
|
_eag .Stroke ();case "\u006e":_eag .ClearPath ();case "\u0057":_eag .SetFillRule (_eac .FillRuleWinding );_eag .ClipPreserve ();case "\u0057\u002a":_eag .SetFillRule (_eac .FillRuleEvenOdd );_eag .ClipPreserve ();case "\u0072\u0067":_eaeb ,_bec :=_gb .ColorNonStroking .(*_ecg .PdfColorDeviceRGB );
|
|
if !_bec {_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",_gb .ColorNonStroking );return nil ;};_eag .SetFillRGBA (_eaeb .R (),_eaeb .G (),_eaeb .B (),1);
|
|
case "\u0052\u0047":_cbgf ,_abg :=_gb .ColorStroking .(*_ecg .PdfColorDeviceRGB );if !_abg {_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",_gb .ColorStroking );
|
|
return nil ;};_eag .SetStrokeRGBA (_cbgf .R (),_cbgf .G (),_cbgf .B (),1);case "\u006b":_cef ,_eaee :=_gb .ColorNonStroking .(*_ecg .PdfColorDeviceCMYK );if !_eaee {_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",_gb .ColorNonStroking );
|
|
return nil ;};_ef ,_fg :=_gb .ColorspaceNonStroking .ColorToRGB (_cef );if _fg !=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",_gb .ColorNonStroking );
|
|
return nil ;};_fcb ,_eaee :=_ef .(*_ecg .PdfColorDeviceRGB );if !_eaee {_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",_ef );return nil ;
|
|
};_eag .SetFillRGBA (_fcb .R (),_fcb .G (),_fcb .B (),1);case "\u004b":_ccgc ,_fdfa :=_gb .ColorStroking .(*_ecg .PdfColorDeviceCMYK );if !_fdfa {_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",_gb .ColorStroking );
|
|
return nil ;};_baa ,_gdg :=_gb .ColorspaceStroking .ColorToRGB (_ccgc );if _gdg !=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",_gb .ColorStroking );
|
|
return nil ;};_gaa ,_fdfa :=_baa .(*_ecg .PdfColorDeviceRGB );if !_fdfa {_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",_baa );return nil ;
|
|
};_eag .SetStrokeRGBA (_gaa .R (),_gaa .G (),_gaa .B (),1);case "\u0067":_ffbc ,_edd :=_gb .ColorNonStroking .(*_ecg .PdfColorDeviceGray );if !_edd {_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",_gb .ColorNonStroking );
|
|
return nil ;};_gbge ,_gdeg :=_gb .ColorspaceNonStroking .ColorToRGB (_ffbc );if _gdeg !=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",_gb .ColorNonStroking );
|
|
return nil ;};_fff ,_edd :=_gbge .(*_ecg .PdfColorDeviceRGB );if !_edd {_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",_gbge );return nil ;
|
|
};_eag .SetFillRGBA (_fff .R (),_fff .G (),_fff .B (),1);case "\u0047":_cbgfe ,_bgb :=_gb .ColorStroking .(*_ecg .PdfColorDeviceGray );if !_bgb {_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",_gb .ColorStroking );
|
|
return nil ;};_eebc ,_adc :=_gb .ColorspaceStroking .ColorToRGB (_cbgfe );if _adc !=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",_gb .ColorStroking );
|
|
return nil ;};_geg ,_bgb :=_eebc .(*_ecg .PdfColorDeviceRGB );if !_bgb {_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",_eebc );return nil ;
|
|
};_eag .SetStrokeRGBA (_geg .R (),_geg .G (),_geg .B (),1);case "\u0063\u0073","\u0073\u0063","\u0073\u0063\u006e":_cefd ,_agc :=_gb .ColorspaceNonStroking .ColorToRGB (_gb .ColorNonStroking );if _agc !=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",_gb .ColorNonStroking );
|
|
return nil ;};_gbc ,_cbc :=_cefd .(*_ecg .PdfColorDeviceRGB );if !_cbc {_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",_cefd );return nil ;
|
|
};_eag .SetFillRGBA (_gbc .R (),_gbc .G (),_gbc .B (),1);case "\u0043\u0053","\u0053\u0043","\u0053\u0043\u004e":_gg ,_de :=_gb .ColorspaceStroking .ColorToRGB (_gb .ColorStroking );if _de !=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",_gb .ColorStroking );
|
|
return nil ;};_fdfd ,_eff :=_gg .(*_ecg .PdfColorDeviceRGB );if !_eff {_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",_gg );return nil ;
|
|
};_eag .SetStrokeRGBA (_fdfd .R (),_fdfd .G (),_fdfd .B (),1);case "\u0044\u006f":if len (_dga .Params )!=1{return _d ;};_cbce ,_eage :=_bb .GetName (_dga .Params [0]);if !_eage {return _aae ;};_ ,_dda :=_bgg .GetXObjectByName (*_cbce );switch _dda {case _ecg .XObjectTypeImage :_ea .Log .Debug ("\u0058\u004f\u0062\u006a\u0065\u0063\u0074\u0020\u0069\u006d\u0061\u0067e\u003a\u0020\u0025\u0073",_cbce .String ());
|
|
_eaebc ,_ebfd :=_bgg .GetXObjectImageByName (*_cbce );if _ebfd !=nil {return _ebfd ;};_ddf ,_ebfd :=_eaebc .ToImage ();if _ebfd !=nil {return _ebfd ;};if _dfb :=_eaebc .ColorSpace ;_dfb !=nil {var _gf bool ;switch _dfb .(type ){case *_ecg .PdfColorspaceSpecialIndexed :_gf =true ;
|
|
};if _gf {if _gbb ,_bce :=_dfb .ImageToRGB (*_ddf );_bce !=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 {_ddf =&_gbb ;};};};_eeg :=_eag .FillPattern ().ColorAt (0,0);var _aca _b .Image ;if _eaebc .Mask !=nil {if _aca ,_ebfd =_bdc (_eaebc .Mask ,_eeg );_ebfd !=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");
|
|
};}else if _eaebc .SMask !=nil {if _aca ,_ebfd =_cdff (_eaebc .SMask ,_eeg );_ebfd !=nil {_ea .Log .Debug ("W\u0041\u0052\u004e\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020\u0067\u0065\u0074\u0020\u0073\u006f\u0066\u0074\u0020\u0069\u006da\u0067e\u0020\u006d\u0061\u0073k\u002e\u0020O\u0075\u0074\u0070\u0075\u0074\u0020\u006d\u0061\u0079\u0020\u0062\u0065\u0020\u0069\u006e\u0063\u006f\u0072\u0072\u0065\u0063\u0074\u002e");
|
|
};};var _gac _b .Image ;if _cdf ,_ :=_bb .GetBoolVal (_eaebc .ImageMask );_cdf {_gac =_ced (_ddf ,_eeg );}else {_gac ,_ebfd =_ddf .ToGoImage ();if _ebfd !=nil {return _ebfd ;};};if _aca !=nil {_gac =_afa (_gac ,_aca );};_bbb :=_gac .Bounds ();_eag .Push ();
|
|
_eag .Scale (1.0/float64 (_bbb .Dx ()),-1.0/float64 (_bbb .Dy ()));_eag .DrawImageAnchored (_gac ,0,0,0,1);_eag .Pop ();case _ecg .XObjectTypeForm :_ea .Log .Debug ("\u0058\u004fb\u006a\u0065\u0063t\u0020\u0066\u006f\u0072\u006d\u003a\u0020\u0025\u0073",_cbce .String ());
|
|
_dcb ,_bda :=_bgg .GetXObjectFormByName (*_cbce );if _bda !=nil {return _bda ;};_acad ,_bda :=_dcb .GetContentStream ();if _bda !=nil {return _bda ;};_cgb :=_dcb .Resources ;if _cgb ==nil {_cgb =_bgg ;};_eag .Push ();if _dcb .Matrix !=nil {_cae ,_ffbcb :=_bb .GetArray (_dcb .Matrix );
|
|
if !_ffbcb {return _aae ;};_baeb ,_edg :=_bb .GetNumbersAsFloat (_cae .Elements ());if _edg !=nil {return _edg ;};if len (_baeb )!=6{return _d ;};_ffa :=_eaca .NewMatrix (_baeb [0],_baeb [1],_baeb [2],_baeb [3],_baeb [4],_baeb [5]);_eag .SetMatrix (_eag .Matrix ().Mult (_ffa ));
|
|
};if _dcb .BBox !=nil {_dgf ,_eddb :=_bb .GetArray (_dcb .BBox );if !_eddb {return _aae ;};_edgd ,_gba :=_bb .GetNumbersAsFloat (_dgf .Elements ());if _gba !=nil {return _gba ;};if len (_edgd )!=4{_ea .Log .Debug ("\u004c\u0065\u006e\u0020\u003d\u0020\u0025\u0064",len (_edgd ));
|
|
return _d ;};_eag .DrawRectangle (_edgd [0],_edgd [1],_edgd [2]-_edgd [0],_edgd [3]-_edgd [1]);_eag .SetRGBA (1,0,0,1);_eag .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");
|
|
};_bda =_afg .renderContentStream (_eag ,string (_acad ),_cgb );if _bda !=nil {return _bda ;};_eag .Pop ();};case "\u0042\u0049":if len (_dga .Params )!=1{return _d ;};_beg ,_ffaa :=_dga .Params [0].(*_bf .ContentStreamInlineImage );if !_ffaa {return nil ;
|
|
};_aeg ,_fba :=_beg .ToImage (_bgg );if _fba !=nil {return _fba ;};_bbba ,_fba :=_aeg .ToGoImage ();if _fba !=nil {return _fba ;};_dfeg :=_bbba .Bounds ();_eag .Push ();_eag .Scale (1.0/float64 (_dfeg .Dx ()),-1.0/float64 (_dfeg .Dy ()));_eag .DrawImageAnchored (_bbba ,0,0,0,1);
|
|
_eag .Pop ();case "\u0042\u0054":_dgd .Reset ();case "\u0045\u0054":_dgd .Reset ();case "\u0054\u0072":if len (_dga .Params )!=1{return _d ;};_add ,_agf :=_bb .GetNumberAsFloat (_dga .Params [0]);if _agf !=nil {return _agf ;};_dgd .Tr =_eac .TextRenderingMode (_add );
|
|
case "\u0054\u004c":if len (_dga .Params )!=1{return _d ;};_efb ,_eegc :=_bb .GetNumberAsFloat (_dga .Params [0]);if _eegc !=nil {return _eegc ;};_dgd .Tl =_efb ;case "\u0054\u0063":if len (_dga .Params )!=1{return _d ;};_fcg ,_fce :=_bb .GetNumberAsFloat (_dga .Params [0]);
|
|
if _fce !=nil {return _fce ;};_ea .Log .Debug ("\u0054\u0063\u003a\u0020\u0025\u0076",_fcg );_dgd .Tc =_fcg ;case "\u0054\u0077":if len (_dga .Params )!=1{return _d ;};_ada ,_bbgf :=_bb .GetNumberAsFloat (_dga .Params [0]);if _bbgf !=nil {return _bbgf ;
|
|
};_ea .Log .Debug ("\u0054\u0077\u003a\u0020\u0025\u0076",_ada );_dgd .Tw =_ada ;case "\u0054\u007a":if len (_dga .Params )!=1{return _d ;};_adg ,_gag :=_bb .GetNumberAsFloat (_dga .Params [0]);if _gag !=nil {return _gag ;};_dgd .Th =_adg ;case "\u0054\u0073":if len (_dga .Params )!=1{return _d ;
|
|
};_caf ,_dgg :=_bb .GetNumberAsFloat (_dga .Params [0]);if _dgg !=nil {return _dgg ;};_dgd .Ts =_caf ;case "\u0054\u0064":if len (_dga .Params )!=2{return _d ;};_acae ,_aef :=_bb .GetNumbersAsFloat (_dga .Params );if _aef !=nil {return _aef ;};_ea .Log .Debug ("\u0054\u0064\u003a\u0020\u0025\u0076",_acae );
|
|
_dgd .ProcTd (_acae [0],_acae [1]);case "\u0054\u0044":if len (_dga .Params )!=2{return _d ;};_fea ,_cded :=_bb .GetNumbersAsFloat (_dga .Params );if _cded !=nil {return _cded ;};_ea .Log .Debug ("\u0054\u0044\u003a\u0020\u0025\u0076",_fea );_dgd .ProcTD (_fea [0],_fea [1]);
|
|
case "\u0054\u002a":_dgd .ProcTStar ();case "\u0054\u006d":if len (_dga .Params )!=6{return _d ;};_aaea ,_bgdd :=_bb .GetNumbersAsFloat (_dga .Params );if _bgdd !=nil {return _bgdd ;};_ea .Log .Debug ("\u0054\u0065x\u0074\u0020\u006da\u0074\u0072\u0069\u0078\u003a\u0020\u0025\u002b\u0076",_aaea );
|
|
_dgd .ProcTm (_aaea [0],_aaea [1],_aaea [2],_aaea [3],_aaea [4],_aaea [5]);case "\u0027":if len (_dga .Params )!=1{return _d ;};_fffg ,_bbe :=_bb .GetStringBytes (_dga .Params [0]);if !_bbe {return _aae ;};_ea .Log .Debug ("\u0027\u0020\u0073t\u0072\u0069\u006e\u0067\u003a\u0020\u0025\u0073",string (_fffg ));
|
|
_dgd .ProcQ (_fffg ,_eag );case "\u0022":if len (_dga .Params )!=3{return _d ;};_cec ,_ecfd :=_bb .GetNumberAsFloat (_dga .Params [0]);if _ecfd !=nil {return _ecfd ;};_ecdb ,_ecfd :=_bb .GetNumberAsFloat (_dga .Params [1]);if _ecfd !=nil {return _ecfd ;
|
|
};_fdfg ,_aed :=_bb .GetStringBytes (_dga .Params [2]);if !_aed {return _aae ;};_dgd .ProcDQ (_fdfg ,_cec ,_ecdb ,_eag );case "\u0054\u006a":if len (_dga .Params )!=1{return _d ;};_bed ,_dca :=_bb .GetStringBytes (_dga .Params [0]);if !_dca {return _aae ;
|
|
};_ea .Log .Debug ("\u0054j\u0020s\u0074\u0072\u0069\u006e\u0067\u003a\u0020\u0060\u0025\u0073\u0060",string (_bed ));_dgd .ProcTj (_bed ,_eag );case "\u0054\u004a":if len (_dga .Params )!=1{return _d ;};_cgg ,_adaf :=_bb .GetArray (_dga .Params [0]);if !_adaf {_ea .Log .Debug ("\u0054\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_cgg );
|
|
return _aae ;};_ea .Log .Debug ("\u0054\u004a\u0020\u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u002b\u0076",_cgg );for _ ,_gc :=range _cgg .Elements (){switch _cab :=_gc .(type ){case *_bb .PdfObjectString :if _cab !=nil {_dgd .ProcTj (_cab .Bytes (),_eag );
|
|
};case *_bb .PdfObjectFloat ,*_bb .PdfObjectInteger :_cee ,_ffbb :=_bb .GetNumberAsFloat (_cab );if _ffbb ==nil {_dgd .Translate (-_cee *0.001*_dgd .Tf .Size *_dgd .Th /100.0,0);};};};case "\u0054\u0066":if len (_dga .Params )!=2{return _d ;};_ea .Log .Debug ("\u0025\u0023\u0076",_dga .Params );
|
|
_fegf ,_gfd :=_bb .GetName (_dga .Params [0]);if !_gfd ||_fegf ==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",_dga .Params [0]);
|
|
return _aae ;};_ea .Log .Debug ("\u0046\u006f\u006e\u0074\u0020\u006e\u0061\u006d\u0065\u003a\u0020\u0025\u0073",_fegf .String ());_baeg ,_dfed :=_bb .GetNumberAsFloat (_dga .Params [1]);if _dfed !=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",_dga .Params [1]);
|
|
return _aae ;};_ea .Log .Debug ("\u0046\u006f\u006e\u0074\u0020\u0073\u0069\u007a\u0065\u003a\u0020\u0025\u0076",_baeg );_feb ,_bdg :=_bgg .GetFontByName (*_fegf );if !_bdg {_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",_fegf .String ());
|
|
return _f .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",_feb );_eg ,_gfd :=_bb .GetDict (_feb );if !_gfd {_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 _aae ;};_ddd ,_dfed :=_ecg .NewPdfFontFromPdfObject (_eg );if _dfed !=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 _dfed ;};_bbeb :=_ddd .BaseFont ();if _bbeb ==""{_bbeb =_fegf .String ();};_bdb ,_gfd :=_ed [_bbeb ];if !_gfd {_bdb ,_dfed =_eac .NewTextFont (_ddd ,_baeg );if _dfed !=nil {_ea .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dfed );
|
|
};};if _bdb ==nil {if len (_bbeb )> 7&&_bbeb [6]=='+'{_bbeb =_bbeb [7:];};_bge :=[]string {_bbeb ,"\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 _ ,_bab :=range _bge {_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",_bab );if _bdb ,_gfd =_ed [_bab ];
|
|
_gfd {break ;};_afe :=_cbe .Match (_bab );if _afe ==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",_bab );continue ;};_bdb ,_dfed =_eac .NewTextFontFromPath (_afe .Filename ,_baeg );
|
|
if _dfed !=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",_afe .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",_bbeb ,_afe .Name ,_afe .Filename );
|
|
_ed [_bab ]=_bdb ;break ;};};if _bdb ==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 _f .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");};_dgd .ProcTf (_bdb .WithSize (_baeg ,_ddd ));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",_dga .Operand );
|
|
};return nil ;});_dg =_fdg .Process (_ccde );if _dg !=nil {return _dg ;};return nil ;};func _gcc (_cdd *_ecg .Image ,_eaed _ff .Color )_b .Image {_baac ,_fbcf :=int (_cdd .Width ),int (_cdd .Height );_bega :=_b .NewRGBA (_b .Rect (0,0,_baac ,_fbcf ));for _egf :=0;
|
|
_egf < _fbcf ;_egf ++{for _dcg :=0;_dcg < _baac ;_dcg ++{_edf ,_cdde :=_cdd .ColorAt (_dcg ,_egf );if _cdde !=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",_dcg ,_egf );
|
|
continue ;};_abfb ,_cdb ,_dde ,_ :=_edf .RGBA ();var _dbb _ff .Color ;if _abfb +_cdb +_dde ==0{_dbb =_ff .Transparent ;}else {_dbb =_eaed ;};_bega .Set (_dcg ,_egf ,_dbb );};};return _bega ;};func _bbff (_gbgb ,_eddg ,_dba float64 )_ec .BoundingBox {return _ec .Path {Points :[]_ec .Point {_ec .NewPoint (0,0).Rotate (_dba ),_ec .NewPoint (_gbgb ,0).Rotate (_dba ),_ec .NewPoint (0,_eddg ).Rotate (_dba ),_ec .NewPoint (_gbgb ,_eddg ).Rotate (_dba )}}.GetBoundingBox ();
|
|
};
|
|
|
|
// RenderToPath converts the specified PDF page into an image and saves the
|
|
// result at the specified location.
|
|
func (_bbf *ImageDevice )RenderToPath (page *_ecg .PdfPage ,outputPath string )error {_gad ,_fdf :=_bbf .Render (page );if _fdf !=nil {return _fdf ;};_bbg :=_fc .ToLower (_fa .Ext (outputPath ));if _bbg ==""{return _f .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 _bbg {case "\u002e\u0070\u006e\u0067":return _dbe (outputPath ,_gad );case "\u002e\u006a\u0070\u0067","\u002e\u006a\u0070e\u0067":return _bbd (outputPath ,_gad ,100);};return _eb .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",_bbg );
|
|
};
|
|
|
|
// Render converts the specified PDF page into an image and returns the result.
|
|
func (_af *ImageDevice )Render (page *_ecg .PdfPage )(_b .Image ,error ){_ade ,_cb :=page .GetMediaBox ();if _cb !=nil {return nil ,_cb ;};_ade .Normalize ();_ece :=page .CropBox ;var _ae ,_ca float64 ;if _ece !=nil {_ece .Normalize ();_ae ,_ca =_ece .Width (),_ece .Height ();
|
|
};_eaa :=page .Rotate ;_bc ,_fe ,_bg ,_cca :=_ade .Llx ,_ade .Lly ,_ade .Width (),_ade .Height ();_ag :=_eaca .IdentityMatrix ();if _eaa !=nil &&*_eaa %360!=0&&*_eaa %90==0{_ffb :=-float64 (*_eaa );_cd :=_bbff (_bg ,_cca ,_ffb );_ag =_ag .Translate ((_cd .Width -_bg )/2+_bg /2,(_cd .Height -_cca )/2+_cca /2).Rotate (_ffb *_a .Pi /180).Translate (-_bg /2,-_cca /2);
|
|
_bg ,_cca =_cd .Width ,_cd .Height ;if _ece !=nil {_ab :=_bbff (_ae ,_ca ,_ffb );_ae ,_ca =_ab .Width ,_ab .Height ;};};if _bc !=0||_fe !=0{_ag =_ag .Translate (-_bc ,-_fe );};_af ._aga =1.0;if _af .OutputWidth !=0{_cde :=_bg ;if _ece !=nil {_cde =_ae ;
|
|
};_af ._aga =float64 (_af .OutputWidth )/_cde ;_bg ,_cca ,_ae ,_ca =_bg *_af ._aga ,_cca *_af ._aga ,_ae *_af ._aga ,_ca *_af ._aga ;_ag =_eaca .ScaleMatrix (_af ._aga ,_af ._aga ).Mult (_ag );};_bcc :=_aac .NewContext (int (_bg ),int (_cca ));if _ac :=_af .renderPage (_bcc ,page ,_ag );
|
|
_ac !=nil {return nil ,_ac ;};_fb :=_bcc .Image ();if _ece !=nil {_ccd ,_abf :=(_ece .Llx -_bc )*_af ._aga ,(_ece .Lly -_fe )*_af ._aga ;_gd :=_b .Rect (0,0,int (_ae ),int (_ca ));_cdea :=_b .Pt (int (_ccd ),int (_cca -_abf -_ca ));_fd :=_b .NewRGBA (_gd );
|
|
_e .Draw (_fd ,_gd ,_fb ,_cdea ,_e .Src );_fb =_fd ;};return _fb ,nil ;};func _afa (_afd ,_ecfdf _b .Image )_b .Image {_bfdd ,_dfbe :=_ecfdf .Bounds ().Size (),_afd .Bounds ().Size ();_eef ,_begc :=_bfdd .X ,_bfdd .Y ;if _dfbe .X > _eef {_eef =_dfbe .X ;
|
|
};if _dfbe .Y > _begc {_begc =_dfbe .Y ;};_cgbe :=_b .Rect (0,0,_eef ,_begc );if _bfdd .X !=_eef ||_bfdd .Y !=_begc {_gegc :=_b .NewRGBA (_cgbe );_c .BiLinear .Scale (_gegc ,_cgbe ,_afd ,_ecfdf .Bounds (),_c .Over ,nil );_ecfdf =_gegc ;};if _dfbe .X !=_eef ||_dfbe .Y !=_begc {_bbcf :=_b .NewRGBA (_cgbe );
|
|
_c .BiLinear .Scale (_bbcf ,_cgbe ,_afd ,_afd .Bounds (),_c .Over ,nil );_afd =_bbcf ;};_aaeb :=_b .NewRGBA (_cgbe );_c .DrawMask (_aaeb ,_cgbe ,_afd ,_b .Point {},_ecfdf ,_b .Point {},_c .Over );return _aaeb ;};
|
|
|
|
// 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 ;}; |