mirror of
https://github.com/unidoc/unipdf.git
synced 2025-04-26 13:48:55 +08:00
145 lines
37 KiB
Go
145 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 (_bd "errors";_d "fmt";_af "github.com/adrg/sysfont";_fa "github.com/unidoc/unipdf/v3/common";_fb "github.com/unidoc/unipdf/v3/contentstream";_cc "github.com/unidoc/unipdf/v3/contentstream/draw";_be "github.com/unidoc/unipdf/v3/core";
|
|
_ff "github.com/unidoc/unipdf/v3/internal/license";_dg "github.com/unidoc/unipdf/v3/internal/transform";_ba "github.com/unidoc/unipdf/v3/model";_ac "github.com/unidoc/unipdf/v3/render/internal/context";_ed "github.com/unidoc/unipdf/v3/render/internal/context/imagerender";
|
|
_cce "golang.org/x/image/draw";_bb "image";_f "image/color";_cg "image/draw";_bf "image/jpeg";_g "image/png";_a "math";_c "os";_bdd "path/filepath";_e "strings";);func (_edb renderer )renderPage (_dgc _ac .Context ,_eaa *_ba .PdfPage ,_dbe _dg .Matrix )error {_bc ,_fd :=_eaa .GetAllContentStreams ();
|
|
if _fd !=nil {return _fd ;};if _dc :=_dbe ;!_dc .Identity (){_bc =_d .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",_dc [0],_dc [1],_dc [3],_dc [4],_dc [6],_dc [7],_bc );
|
|
};_dgc .Translate (0,float64 (_dgc .Height ()));_dgc .Scale (1,-1);_dgc .Push ();_dgc .SetRGBA (1,1,1,1);_dgc .DrawRectangle (0,0,float64 (_dgc .Width ()),float64 (_dgc .Height ()));_dgc .Fill ();_dgc .Pop ();_dgc .SetLineWidth (1.0);_dgc .SetRGBA (0,0,0,1);
|
|
return _edb .renderContentStream (_dgc ,_bc ,_eaa .Resources );};
|
|
|
|
// 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 _bge (_dbba ,_fbdg ,_cbc float64 )_cc .BoundingBox {return _cc .Path {Points :[]_cc .Point {_cc .NewPoint (0,0).Rotate (_cbc ),_cc .NewPoint (_dbba ,0).Rotate (_cbc ),_cc .NewPoint (0,_fbdg ).Rotate (_cbc ),_cc .NewPoint (_dbba ,_fbdg ).Rotate (_cbc )}}.GetBoundingBox ();
|
|
};func _agf (_faea *_ba .Image ,_gbad _f .Color )_bb .Image {_dbbb ,_dbag :=int (_faea .Width ),int (_faea .Height );_gcfe :=_bb .NewRGBA (_bb .Rect (0,0,_dbbb ,_dbag ));for _bccc :=0;_bccc < _dbag ;_bccc ++{for _cge :=0;_cge < _dbbb ;_cge ++{_bbgc ,_cbe :=_faea .ColorAt (_cge ,_bccc );
|
|
if _cbe !=nil {_fa .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",_cge ,_bccc );
|
|
continue ;};_caee ,_fca ,_gbg ,_ :=_bbgc .RGBA ();var _cfc _f .Color ;if _caee +_fca +_gbg ==0{_cfc =_gbad ;}else {_cfc =_f .Transparent ;};_gcfe .Set (_cge ,_bccc ,_cfc );};};return _gcfe ;};func _eedc (_gff string ,_ggb _bb .Image )error {_fcg ,_aae :=_c .Create (_gff );
|
|
if _aae !=nil {return _aae ;};defer _fcg .Close ();return _g .Encode (_fcg ,_ggb );};func _bbge (_fbd ,_egae _bb .Image )_bb .Image {_fdf ,_baa :=_egae .Bounds ().Size (),_fbd .Bounds ().Size ();_eedb ,_dag :=_fdf .X ,_fdf .Y ;if _baa .X > _eedb {_eedb =_baa .X ;
|
|
};if _baa .Y > _dag {_dag =_baa .Y ;};_aff :=_bb .Rect (0,0,_eedb ,_dag );if _fdf .X !=_eedb ||_fdf .Y !=_dag {_daa :=_bb .NewRGBA (_aff );_cce .BiLinear .Scale (_daa ,_aff ,_fbd ,_egae .Bounds (),_cce .Over ,nil );_egae =_daa ;};if _baa .X !=_eedb ||_baa .Y !=_dag {_dca :=_bb .NewRGBA (_aff );
|
|
_cce .BiLinear .Scale (_dca ,_aff ,_fbd ,_fbd .Bounds (),_cce .Over ,nil );_fbd =_dca ;};_gefb :=_bb .NewRGBA (_aff );_cce .DrawMask (_gefb ,_aff ,_fbd ,_bb .Point {},_egae ,_bb .Point {},_cce .Over );return _gefb ;};func (_abf renderer )renderContentStream (_dbae _ac .Context ,_dd string ,_dgb *_ba .PdfPageResources )error {_ce ,_bg :=_fb .NewContentStreamParser (_dd ).Parse ();
|
|
if _bg !=nil {return _bg ;};_gca :=_dbae .TextState ();_gca .GlobalScale =_abf ._bda ;_ee :=map[string ]*_ac .TextFont {};_ae :=_af .NewFinder (&_af .FinderOpts {Extensions :[]string {"\u002e\u0074\u0074\u0066","\u002e\u0074\u0074\u0063"}});_ffe :=_fb .NewContentStreamProcessor (*_ce );
|
|
_ffe .AddHandler (_fb .HandlerConditionEnumAllOperands ,"",func (_ffef *_fb .ContentStreamOperation ,_aea _fb .GraphicsState ,_fde *_ba .PdfPageResources )error {_fa .Log .Debug ("\u0050\u0072\u006f\u0063\u0065\u0073\u0073\u0069\u006e\u0067\u0020\u0025\u0073",_ffef .Operand );
|
|
switch _ffef .Operand {case "\u0071":_dbae .Push ();case "\u0051":_dbae .Pop ();_gca =_dbae .TextState ();case "\u0063\u006d":if len (_ffef .Params )!=6{return _gc ;};_cff ,_fc :=_be .GetNumbersAsFloat (_ffef .Params );if _fc !=nil {return _fc ;};_fe :=_dg .NewMatrix (_cff [0],_cff [1],_cff [2],_cff [3],_cff [4],_cff [5]);
|
|
_fa .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",_fe );_dbae .SetMatrix (_dbae .Matrix ().Mult (_fe ));case "\u0077":if len (_ffef .Params )!=1{return _gc ;
|
|
};_ag ,_cec :=_be .GetNumbersAsFloat (_ffef .Params );if _cec !=nil {return _cec ;};_dbae .SetLineWidth (_ag [0]);case "\u004a":if len (_ffef .Params )!=1{return _gc ;};_da ,_gf :=_be .GetIntVal (_ffef .Params [0]);if !_gf {return _cfd ;};switch _da {case 0:_dbae .SetLineCap (_ac .LineCapButt );
|
|
case 1:_dbae .SetLineCap (_ac .LineCapRound );case 2:_dbae .SetLineCap (_ac .LineCapSquare );default:_fa .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",_da );
|
|
return _gc ;};case "\u006a":if len (_ffef .Params )!=1{return _gc ;};_edf ,_cae :=_be .GetIntVal (_ffef .Params [0]);if !_cae {return _cfd ;};switch _edf {case 0:_dbae .SetLineJoin (_ac .LineJoinBevel );case 1:_dbae .SetLineJoin (_ac .LineJoinRound );case 2:_dbae .SetLineJoin (_ac .LineJoinBevel );
|
|
default:_fa .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",_edf );return _gc ;};case "\u004d":if len (_ffef .Params )!=1{return _gc ;};_gad ,_fg :=_be .GetNumbersAsFloat (_ffef .Params );
|
|
if _fg !=nil {return _fg ;};_ =_gad ;_fa .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 (_ffef .Params )!=2{return _gc ;};_df ,_aac :=_be .GetArray (_ffef .Params [0]);
|
|
if !_aac {return _cfd ;};_edg ,_aac :=_be .GetIntVal (_ffef .Params [1]);if !_aac {return _cfd ;};_egb ,_ad :=_be .GetNumbersAsFloat (_df .Elements ());if _ad !=nil {return _ad ;};_dbae .SetDash (_egb ...);_ =_edg ;_fa .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":_fa .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":_fa .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 (_ffef .Params )!=1{return _gc ;};_ffa ,_bff :=_be .GetName (_ffef .Params [0]);if !_bff {return _cfd ;};if _ffa ==nil {return _gc ;};_cabc ,_bff :=_fde .GetExtGState (*_ffa );if !_bff {_fa .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",*_ffa );
|
|
return _bd .New ("\u0072e\u0073o\u0075\u0072\u0063\u0065\u0020n\u006f\u0074 \u0066\u006f\u0075\u006e\u0064");};_feff ,_bff :=_be .GetDict (_cabc );if !_bff {_fa .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 _cfd ;};_fa .Log .Debug ("G\u0053\u0020\u0064\u0069\u0063\u0074\u003a\u0020\u0025\u0073",_feff .String ());case "\u006d":if len (_ffef .Params )!=2{_fa .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",_gc );
|
|
return nil ;};_ec ,_bbg :=_be .GetNumbersAsFloat (_ffef .Params );if _bbg !=nil {return _bbg ;};_fa .Log .Debug ("M\u006f\u0076\u0065\u0020\u0074\u006f\u003a\u0020\u0025\u0076",_ec );_dbae .NewSubPath ();_dbae .MoveTo (_ec [0],_ec [1]);case "\u006c":if len (_ffef .Params )!=2{_fa .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",_gc );
|
|
return nil ;};_dfb ,_aeb :=_be .GetNumbersAsFloat (_ffef .Params );if _aeb !=nil {return _aeb ;};_dbae .LineTo (_dfb [0],_dfb [1]);case "\u0063":if len (_ffef .Params )!=6{return _gc ;};_feg ,_ffdg :=_be .GetNumbersAsFloat (_ffef .Params );if _ffdg !=nil {return _ffdg ;
|
|
};_fa .Log .Debug ("\u0043u\u0062\u0069\u0063\u0020\u0062\u0065\u007a\u0069\u0065\u0072\u0020p\u0061\u0072\u0061\u006d\u0073\u003a\u0020\u0025\u002b\u0076",_feg );_dbae .CubicTo (_feg [0],_feg [1],_feg [2],_feg [3],_feg [4],_feg [5]);case "\u0076","\u0079":if len (_ffef .Params )!=4{return _gc ;
|
|
};_gfe ,_bag :=_be .GetNumbersAsFloat (_ffef .Params );if _bag !=nil {return _bag ;};_fa .Log .Debug ("\u0043u\u0062\u0069\u0063\u0020\u0062\u0065\u007a\u0069\u0065\u0072\u0020p\u0061\u0072\u0061\u006d\u0073\u003a\u0020\u0025\u002b\u0076",_gfe );_dbae .QuadraticTo (_gfe [0],_gfe [1],_gfe [2],_gfe [3]);
|
|
case "\u0068":_dbae .ClosePath ();_dbae .NewSubPath ();case "\u0072\u0065":if len (_ffef .Params )!=4{return _gc ;};_fgd ,_cac :=_be .GetNumbersAsFloat (_ffef .Params );if _cac !=nil {return _cac ;};_dbae .DrawRectangle (_fgd [0],_fgd [1],_fgd [2],_fgd [3]);
|
|
_dbae .NewSubPath ();case "\u0053":_bac ,_gd :=_aea .ColorspaceStroking .ColorToRGB (_aea .ColorStroking );if _gd !=nil {_fa .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",_gd );
|
|
return _gd ;};_abd ,_ede :=_bac .(*_ba .PdfColorDeviceRGB );if !_ede {_fa .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _gd ;};_dbae .SetRGBA (_abd .R (),_abd .G (),_abd .B (),1);
|
|
_dbae .Stroke ();case "\u0073":_cacd ,_gcc :=_aea .ColorspaceStroking .ColorToRGB (_aea .ColorStroking );if _gcc !=nil {_fa .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",_gcc );
|
|
return _gcc ;};_bce ,_cdg :=_cacd .(*_ba .PdfColorDeviceRGB );if !_cdg {_fa .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _gcc ;};_dbae .ClosePath ();_dbae .NewSubPath ();
|
|
_dbae .SetRGBA (_bce .R (),_bce .G (),_bce .B (),1);_dbae .Stroke ();case "\u0066","\u0046":_ega ,_dae :=_aea .ColorspaceNonStroking .ColorToRGB (_aea .ColorNonStroking );if _dae !=nil {_fa .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",_dae );
|
|
return _dae ;};_edfa ,_deg :=_ega .(*_ba .PdfColorDeviceRGB );if !_deg {_fa .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _dae ;};_dbae .SetRGBA (_edfa .R (),_edfa .G (),_edfa .B (),1);
|
|
_dbae .SetFillRule (_ac .FillRuleWinding );_dbae .Fill ();case "\u0066\u002a":_eec ,_fac :=_aea .ColorspaceNonStroking .ColorToRGB (_aea .ColorNonStroking );if _fac !=nil {_fa .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",_fac );
|
|
return _fac ;};_dcc ,_ebf :=_eec .(*_ba .PdfColorDeviceRGB );if !_ebf {_fa .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _fac ;};_dbae .SetRGBA (_dcc .R (),_dcc .G (),_dcc .B (),1);
|
|
_dbae .SetFillRule (_ac .FillRuleEvenOdd );_dbae .Fill ();case "\u0042":_gb ,_dfbc :=_aea .ColorspaceNonStroking .ColorToRGB (_aea .ColorNonStroking );if _dfbc !=nil {_fa .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",_dfbc );
|
|
return _dfbc ;};_bcf :=_gb .(*_ba .PdfColorDeviceRGB );_dbae .SetRGBA (_bcf .R (),_bcf .G (),_bcf .B (),1);_dbae .SetFillRule (_ac .FillRuleWinding );_dbae .FillPreserve ();_gb ,_dfbc =_aea .ColorspaceStroking .ColorToRGB (_aea .ColorStroking );if _dfbc !=nil {_fa .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",_dfbc );
|
|
return _dfbc ;};_bcf =_gb .(*_ba .PdfColorDeviceRGB );_dbae .SetRGBA (_bcf .R (),_bcf .G (),_bcf .B (),1);_dbae .Stroke ();case "\u0042\u002a":_eca ,_caf :=_aea .ColorspaceNonStroking .ColorToRGB (_aea .ColorNonStroking );if _caf !=nil {_fa .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",_caf );
|
|
return _caf ;};_bdf :=_eca .(*_ba .PdfColorDeviceRGB );_dbae .SetRGBA (_bdf .R (),_bdf .G (),_bdf .B (),1);_dbae .SetFillRule (_ac .FillRuleEvenOdd );_dbae .FillPreserve ();_eca ,_caf =_aea .ColorspaceStroking .ColorToRGB (_aea .ColorStroking );if _caf !=nil {_fa .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",_caf );
|
|
return _caf ;};_bdf =_eca .(*_ba .PdfColorDeviceRGB );_dbae .SetRGBA (_bdf .R (),_bdf .G (),_bdf .B (),1);_dbae .Stroke ();case "\u0062":_eee ,_dac :=_aea .ColorspaceNonStroking .ColorToRGB (_aea .ColorNonStroking );if _dac !=nil {_fa .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",_dac );
|
|
return _dac ;};_acf :=_eee .(*_ba .PdfColorDeviceRGB );_dbae .SetRGBA (_acf .R (),_acf .G (),_acf .B (),1);_dbae .ClosePath ();_dbae .NewSubPath ();_dbae .SetFillRule (_ac .FillRuleWinding );_dbae .FillPreserve ();_eee ,_dac =_aea .ColorspaceStroking .ColorToRGB (_aea .ColorStroking );
|
|
if _dac !=nil {_fa .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",_dac );return _dac ;};_acf =_eee .(*_ba .PdfColorDeviceRGB );_dbae .SetRGBA (_acf .R (),_acf .G (),_acf .B (),1);
|
|
_dbae .Stroke ();case "\u0062\u002a":_dbae .ClosePath ();_cgd ,_aef :=_aea .ColorspaceNonStroking .ColorToRGB (_aea .ColorNonStroking );if _aef !=nil {_fa .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",_aef );
|
|
return _aef ;};_aca :=_cgd .(*_ba .PdfColorDeviceRGB );_dbae .SetRGBA (_aca .R (),_aca .G (),_aca .B (),1);_dbae .NewSubPath ();_dbae .SetFillRule (_ac .FillRuleEvenOdd );_dbae .FillPreserve ();_cgd ,_aef =_aea .ColorspaceStroking .ColorToRGB (_aea .ColorStroking );
|
|
if _aef !=nil {_fa .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",_aef );return _aef ;};_aca =_cgd .(*_ba .PdfColorDeviceRGB );_dbae .SetRGBA (_aca .R (),_aca .G (),_aca .B (),1);
|
|
_dbae .Stroke ();case "\u006e":_dbae .ClearPath ();case "\u0057":_dbae .SetFillRule (_ac .FillRuleWinding );_dbae .ClipPreserve ();case "\u0057\u002a":_dbae .SetFillRule (_ac .FillRuleEvenOdd );_dbae .ClipPreserve ();case "\u0072\u0067":_gdc ,_bgg :=_aea .ColorNonStroking .(*_ba .PdfColorDeviceRGB );
|
|
if !_bgg {_fa .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_aea .ColorNonStroking );return nil ;};_dbae .SetFillRGBA (_gdc .R (),_gdc .G (),_gdc .B (),1);
|
|
case "\u0052\u0047":_agb ,_ddg :=_aea .ColorStroking .(*_ba .PdfColorDeviceRGB );if !_ddg {_fa .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_aea .ColorStroking );
|
|
return nil ;};_dbae .SetStrokeRGBA (_agb .R (),_agb .G (),_agb .B (),1);case "\u006b":_cfb ,_dfbcf :=_aea .ColorNonStroking .(*_ba .PdfColorDeviceCMYK );if !_dfbcf {_fa .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_aea .ColorNonStroking );
|
|
return nil ;};_ddd ,_dee :=_aea .ColorspaceNonStroking .ColorToRGB (_cfb );if _dee !=nil {_fa .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_aea .ColorNonStroking );
|
|
return nil ;};_add ,_dfbcf :=_ddd .(*_ba .PdfColorDeviceRGB );if !_dfbcf {_fa .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",_ddd );return nil ;
|
|
};_dbae .SetFillRGBA (_add .R (),_add .G (),_add .B (),1);case "\u004b":_caff ,_eba :=_aea .ColorStroking .(*_ba .PdfColorDeviceCMYK );if !_eba {_fa .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_aea .ColorStroking );
|
|
return nil ;};_gfb ,_egbf :=_aea .ColorspaceStroking .ColorToRGB (_caff );if _egbf !=nil {_fa .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_aea .ColorStroking );
|
|
return nil ;};_dcg ,_eba :=_gfb .(*_ba .PdfColorDeviceRGB );if !_eba {_fa .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",_gfb );return nil ;
|
|
};_dbae .SetStrokeRGBA (_dcg .R (),_dcg .G (),_dcg .B (),1);case "\u0067":_fgf ,_gba :=_aea .ColorNonStroking .(*_ba .PdfColorDeviceGray );if !_gba {_fa .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_aea .ColorNonStroking );
|
|
return nil ;};_dbc ,_deb :=_aea .ColorspaceNonStroking .ColorToRGB (_fgf );if _deb !=nil {_fa .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_aea .ColorNonStroking );
|
|
return nil ;};_eed ,_gba :=_dbc .(*_ba .PdfColorDeviceRGB );if !_gba {_fa .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",_dbc );return nil ;
|
|
};_dbae .SetFillRGBA (_eed .R (),_eed .G (),_eed .B (),1);case "\u0047":_gce ,_dea :=_aea .ColorStroking .(*_ba .PdfColorDeviceGray );if !_dea {_fa .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_aea .ColorStroking );
|
|
return nil ;};_gbf ,_fae :=_aea .ColorspaceStroking .ColorToRGB (_gce );if _fae !=nil {_fa .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_aea .ColorStroking );
|
|
return nil ;};_dead ,_dea :=_gbf .(*_ba .PdfColorDeviceRGB );if !_dea {_fa .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",_gbf );return nil ;
|
|
};_dbae .SetStrokeRGBA (_dead .R (),_dead .G (),_dead .B (),1);case "\u0063\u0073","\u0073\u0063","\u0073\u0063\u006e":_eac ,_fdg :=_aea .ColorspaceNonStroking .ColorToRGB (_aea .ColorNonStroking );if _fdg !=nil {_fa .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_aea .ColorNonStroking );
|
|
return nil ;};_fea ,_bggb :=_eac .(*_ba .PdfColorDeviceRGB );if !_bggb {_fa .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 ;
|
|
};_dbae .SetFillRGBA (_fea .R (),_fea .G (),_fea .B (),1);case "\u0043\u0053","\u0053\u0043","\u0053\u0043\u004e":_cgf ,_bae :=_aea .ColorspaceStroking .ColorToRGB (_aea .ColorStroking );if _bae !=nil {_fa .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_aea .ColorStroking );
|
|
return nil ;};_bcc ,_ege :=_cgf .(*_ba .PdfColorDeviceRGB );if !_ege {_fa .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",_cgf );return nil ;
|
|
};_dbae .SetStrokeRGBA (_bcc .R (),_bcc .G (),_bcc .B (),1);case "\u0044\u006f":if len (_ffef .Params )!=1{return _gc ;};_ged ,_aga :=_be .GetName (_ffef .Params [0]);if !_aga {return _cfd ;};_ ,_fefg :=_fde .GetXObjectByName (*_ged );switch _fefg {case _ba .XObjectTypeImage :_fa .Log .Debug ("\u0058\u004f\u0062\u006a\u0065\u0063\u0074\u0020\u0069\u006d\u0061\u0067e\u003a\u0020\u0025\u0073",_ged .String ());
|
|
_aead ,_fbe :=_fde .GetXObjectImageByName (*_ged );if _fbe !=nil {return _fbe ;};_eeb ,_fbe :=_aead .ToImage ();if _fbe !=nil {return _fbe ;};if _fgfb :=_aead .ColorSpace ;_fgfb !=nil {var _bab bool ;switch _fgfb .(type ){case *_ba .PdfColorspaceSpecialIndexed :_bab =true ;
|
|
};if _bab {if _cdgg ,_aeg :=_fgfb .ImageToRGB (*_eeb );_aeg !=nil {_fa .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 {_eeb =&_cdgg ;};};};_ddc :=_dbae .FillPattern ().ColorAt (0,0);var _agc _bb .Image ;if _aead .Mask !=nil {if _agc ,_fbe =_dgf (_aead .Mask ,_ddc );_fbe !=nil {_fa .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 _dfe _bb .Image ;if _cdf ,_ :=_be .GetBoolVal (_aead .ImageMask );_cdf {_dfe =_agf (_eeb ,_ddc );}else {_dfe ,_fbe =_eeb .ToGoImage ();if _fbe !=nil {return _fbe ;};};if _agc !=nil {_dfe =_bbge (_dfe ,_agc );};_eecc :=_dfe .Bounds ();_dbae .Push ();
|
|
_dbae .Scale (1.0/float64 (_eecc .Dx ()),-1.0/float64 (_eecc .Dy ()));_dbae .DrawImageAnchored (_dfe ,0,0,0,1);_dbae .Pop ();case _ba .XObjectTypeForm :_fa .Log .Debug ("\u0058\u004fb\u006a\u0065\u0063t\u0020\u0066\u006f\u0072\u006d\u003a\u0020\u0025\u0073",_ged .String ());
|
|
_fefgf ,_ffb :=_fde .GetXObjectFormByName (*_ged );if _ffb !=nil {return _ffb ;};_ccee ,_ffb :=_fefgf .GetContentStream ();if _ffb !=nil {return _ffb ;};_bcg :=_fefgf .Resources ;if _bcg ==nil {_bcg =_fde ;};_dbae .Push ();if _fefgf .Matrix !=nil {_bgga ,_edff :=_be .GetArray (_fefgf .Matrix );
|
|
if !_edff {return _cfd ;};_dbb ,_ebb :=_be .GetNumbersAsFloat (_bgga .Elements ());if _ebb !=nil {return _ebb ;};if len (_dbb )!=6{return _gc ;};_ebd :=_dg .NewMatrix (_dbb [0],_dbb [1],_dbb [2],_dbb [3],_dbb [4],_dbb [5]);_dbae .SetMatrix (_dbae .Matrix ().Mult (_ebd ));
|
|
};if _fefgf .BBox !=nil {_afee ,_eacd :=_be .GetArray (_fefgf .BBox );if !_eacd {return _cfd ;};_eeed ,_bea :=_be .GetNumbersAsFloat (_afee .Elements ());if _bea !=nil {return _bea ;};if len (_eeed )!=4{_fa .Log .Debug ("\u004c\u0065\u006e\u0020\u003d\u0020\u0025\u0064",len (_eeed ));
|
|
return _gc ;};_dbae .DrawRectangle (_eeed [0],_eeed [1],_eeed [2]-_eeed [0],_eeed [3]-_eeed [1]);_dbae .SetRGBA (1,0,0,1);_dbae .Clip ();}else {_fa .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");
|
|
};_ffb =_abf .renderContentStream (_dbae ,string (_ccee ),_bcg );if _ffb !=nil {return _ffb ;};_dbae .Pop ();};case "\u0042\u0049":if len (_ffef .Params )!=1{return _gc ;};_afa ,_agba :=_ffef .Params [0].(*_fb .ContentStreamInlineImage );if !_agba {return nil ;
|
|
};_bfc ,_eacf :=_afa .ToImage (_fde );if _eacf !=nil {return _eacf ;};_fegb ,_eacf :=_bfc .ToGoImage ();if _eacf !=nil {return _eacf ;};_dcf :=_fegb .Bounds ();_dbae .Push ();_dbae .Scale (1.0/float64 (_dcf .Dx ()),-1.0/float64 (_dcf .Dy ()));_dbae .DrawImageAnchored (_fegb ,0,0,0,1);
|
|
_dbae .Pop ();case "\u0042\u0054":_gca .Reset ();case "\u0045\u0054":_gca .Reset ();case "\u0054\u0072":if len (_ffef .Params )!=1{return _gc ;};_bfe ,_gef :=_be .GetNumberAsFloat (_ffef .Params [0]);if _gef !=nil {return _gef ;};_gca .Tr =_ac .TextRenderingMode (_bfe );
|
|
case "\u0054\u004c":if len (_ffef .Params )!=1{return _gc ;};_cbg ,_gge :=_be .GetNumberAsFloat (_ffef .Params [0]);if _gge !=nil {return _gge ;};_gca .Tl =_cbg ;case "\u0054\u0063":if len (_ffef .Params )!=1{return _gc ;};_dce ,_ggge :=_be .GetNumberAsFloat (_ffef .Params [0]);
|
|
if _ggge !=nil {return _ggge ;};_fa .Log .Debug ("\u0054\u0063\u003a\u0020\u0025\u0076",_dce );_gca .Tc =_dce ;case "\u0054\u0077":if len (_ffef .Params )!=1{return _gc ;};_fad ,_bdab :=_be .GetNumberAsFloat (_ffef .Params [0]);if _bdab !=nil {return _bdab ;
|
|
};_fa .Log .Debug ("\u0054\u0077\u003a\u0020\u0025\u0076",_fad );_gca .Tw =_fad ;case "\u0054\u007a":if len (_ffef .Params )!=1{return _gc ;};_afb ,_dda :=_be .GetNumberAsFloat (_ffef .Params [0]);if _dda !=nil {return _dda ;};_gca .Th =_afb ;case "\u0054\u0073":if len (_ffef .Params )!=1{return _gc ;
|
|
};_eece ,_ffff :=_be .GetNumberAsFloat (_ffef .Params [0]);if _ffff !=nil {return _ffff ;};_gca .Ts =_eece ;case "\u0054\u0064":if len (_ffef .Params )!=2{return _gc ;};_bad ,_caed :=_be .GetNumbersAsFloat (_ffef .Params );if _caed !=nil {return _caed ;
|
|
};_fa .Log .Debug ("\u0054\u0064\u003a\u0020\u0025\u0076",_bad );_gca .ProcTd (_bad [0],_bad [1]);case "\u0054\u0044":if len (_ffef .Params )!=2{return _gc ;};_cad ,_cga :=_be .GetNumbersAsFloat (_ffef .Params );if _cga !=nil {return _cga ;};_fa .Log .Debug ("\u0054\u0044\u003a\u0020\u0025\u0076",_cad );
|
|
_gca .ProcTD (_cad [0],_cad [1]);case "\u0054\u002a":_gca .ProcTStar ();case "\u0054\u006d":if len (_ffef .Params )!=6{return _gc ;};_ffdc ,_cdb :=_be .GetNumbersAsFloat (_ffef .Params );if _cdb !=nil {return _cdb ;};_fa .Log .Debug ("\u0054\u0065x\u0074\u0020\u006da\u0074\u0072\u0069\u0078\u003a\u0020\u0025\u002b\u0076",_ffdc );
|
|
_gca .ProcTm (_ffdc [0],_ffdc [1],_ffdc [2],_ffdc [3],_ffdc [4],_ffdc [5]);case "\u0027":if len (_ffef .Params )!=1{return _gc ;};_eff ,_abe :=_be .GetStringBytes (_ffef .Params [0]);if !_abe {return _cfd ;};_fa .Log .Debug ("\u0027\u0020\u0073t\u0072\u0069\u006e\u0067\u003a\u0020\u0025\u0073",string (_eff ));
|
|
_gca .ProcQ (_eff ,_dbae );case "\u0022":if len (_ffef .Params )!=3{return _gc ;};_ebg ,_dde :=_be .GetNumberAsFloat (_ffef .Params [0]);if _dde !=nil {return _dde ;};_edef ,_dde :=_be .GetNumberAsFloat (_ffef .Params [1]);if _dde !=nil {return _dde ;};
|
|
_efa ,_ggf :=_be .GetStringBytes (_ffef .Params [2]);if !_ggf {return _cfd ;};_gca .ProcDQ (_efa ,_ebg ,_edef ,_dbae );case "\u0054\u006a":if len (_ffef .Params )!=1{return _gc ;};_dcfc ,_cgad :=_be .GetStringBytes (_ffef .Params [0]);if !_cgad {return _cfd ;
|
|
};_fa .Log .Debug ("\u0054j\u0020s\u0074\u0072\u0069\u006e\u0067\u003a\u0020\u0060\u0025\u0073\u0060",string (_dcfc ));_gca .ProcTj (_dcfc ,_dbae );case "\u0054\u004a":if len (_ffef .Params )!=1{return _gc ;};_dccf ,_bfa :=_be .GetArray (_ffef .Params [0]);
|
|
if !_bfa {_fa .Log .Debug ("\u0054\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_dccf );return _cfd ;};_fa .Log .Debug ("\u0054\u004a\u0020\u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u002b\u0076",_dccf );for _ ,_fee :=range _dccf .Elements (){switch _dfba :=_fee .(type ){case *_be .PdfObjectString :if _dfba !=nil {_gca .ProcTj (_dfba .Bytes (),_dbae );
|
|
};case *_be .PdfObjectFloat ,*_be .PdfObjectInteger :_bcgd ,_ceg :=_be .GetNumberAsFloat (_dfba );if _ceg ==nil {_gca .Translate (-_bcgd *0.001*_gca .Tf .Size *_gca .Th /100.0,0);};};};case "\u0054\u0066":if len (_ffef .Params )!=2{return _gc ;};_fa .Log .Debug ("\u0025\u0023\u0076",_ffef .Params );
|
|
_ecf ,_efc :=_be .GetName (_ffef .Params [0]);if !_efc ||_ecf ==nil {_fa .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",_ffef .Params [0]);
|
|
return _cfd ;};_fa .Log .Debug ("\u0046\u006f\u006e\u0074\u0020\u006e\u0061\u006d\u0065\u003a\u0020\u0025\u0073",_ecf .String ());_bed ,_gde :=_be .GetNumberAsFloat (_ffef .Params [1]);if _gde !=nil {_fa .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",_ffef .Params [1]);
|
|
return _cfd ;};_fa .Log .Debug ("\u0046\u006f\u006e\u0074\u0020\u0073\u0069\u007a\u0065\u003a\u0020\u0025\u0076",_bed );_eeceb ,_fgb :=_fde .GetFontByName (*_ecf );if !_fgb {_fa .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0046\u006f\u006e\u0074\u0020\u0025s\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064",_ecf .String ());
|
|
return _bd .New ("\u0066\u006f\u006e\u0074\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};_fa .Log .Debug ("\u0046\u006f\u006e\u0074\u003a\u0020\u0025\u0054",_eeceb );_gcf ,_efc :=_be .GetDict (_eeceb );if !_efc {_fa .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 _cfd ;};_cfg ,_gde :=_ba .NewPdfFontFromPdfObject (_gcf );if _gde !=nil {_fa .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 _gde ;};_fba :=_cfg .BaseFont ();if _fba ==""{_fba =_ecf .String ();};_gea ,_efc :=_ee [_fba ];if !_efc {_gea ,_gde =_ac .NewTextFont (_cfg ,_bed );if _gde !=nil {_fa .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gde );};};if _gea ==nil {if len (_fba )> 7&&_fba [6]=='+'{_fba =_fba [7:];
|
|
};_ggeb :=[]string {_fba ,"\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 _ ,_agbf :=range _ggeb {_fa .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",_agbf );
|
|
if _gea ,_efc =_ee [_agbf ];_efc {break ;};_gfg :=_ae .Match (_agbf );if _gfg ==nil {_fa .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",_agbf );continue ;
|
|
};_gea ,_gde =_ac .NewTextFontFromPath (_gfg .Filename ,_bed );if _gde !=nil {_fa .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",_gfg .Filename );
|
|
continue ;};_fa .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",_fba ,_gfg .Name ,_gfg .Filename );_ee [_agbf ]=_gea ;
|
|
break ;};};if _gea ==nil {_fa .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 _bd .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");};_gca .ProcTf (_gea .WithSize (_bed ,_cfg ));case "\u0042\u004d\u0043","\u0042\u0044\u0043":case "\u0045\u004d\u0043":default:_fa .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",_ffef .Operand );
|
|
};return nil ;});_bg =_ffe .Process (_dgb );if _bg !=nil {return _bg ;};return nil ;};func _dgf (_ebc _be .PdfObject ,_dfd _f .Color )(_bb .Image ,error ){_bafd ,_cfcc :=_be .GetStream (_ebc );if !_cfcc {return nil ,nil ;};_ffdd ,_fec :=_ba .NewXObjectImageFromStream (_bafd );
|
|
if _fec !=nil {return nil ,_fec ;};_dgg ,_fec :=_ffdd .ToImage ();if _fec !=nil {return nil ,_fec ;};return _agf (_dgg ,_dfd ),nil ;};
|
|
|
|
// Render converts the specified PDF page into an image and returns the result.
|
|
func (_ge *ImageDevice )Render (page *_ba .PdfPage )(_bb .Image ,error ){_db ,_ef :=page .GetMediaBox ();if _ef !=nil {return nil ,_ef ;};_db .Normalize ();_bdb :=page .CropBox ;var _de ,_fbb float64 ;if _bdb !=nil {_bdb .Normalize ();_de ,_fbb =_bdb .Width (),_bdb .Height ();
|
|
};_ea :=page .Rotate ;_aa ,_ab ,_eb ,_ca :=_db .Llx ,_db .Lly ,_db .Width (),_db .Height ();_bbb :=_dg .IdentityMatrix ();if _ea !=nil &&*_ea %360!=0&&*_ea %90==0{_gg :=-float64 (*_ea );_bba :=_bge (_eb ,_ca ,_gg );_bbb =_bbb .Translate ((_bba .Width -_eb )/2+_eb /2,(_bba .Height -_ca )/2+_ca /2).Rotate (_gg *_a .Pi /180).Translate (-_eb /2,-_ca /2);
|
|
_eb ,_ca =_bba .Width ,_bba .Height ;if _bdb !=nil {_eg :=_bge (_de ,_fbb ,_gg );_de ,_fbb =_eg .Width ,_eg .Height ;};};if _aa !=0||_ab !=0{_bbb =_bbb .Translate (-_aa ,-_ab );};_ge ._bda =1.0;if _ge .OutputWidth !=0{_ded :=_eb ;if _bdb !=nil {_ded =_de ;
|
|
};_ge ._bda =float64 (_ge .OutputWidth )/_ded ;_eb ,_ca ,_de ,_fbb =_eb *_ge ._bda ,_ca *_ge ._bda ,_de *_ge ._bda ,_fbb *_ge ._bda ;_bbb =_dg .ScaleMatrix (_ge ._bda ,_ge ._bda ).Mult (_bbb );};_gag :=_ed .NewContext (int (_eb ),int (_ca ));if _afe :=_ge .renderPage (_gag ,page ,_bbb );
|
|
_afe !=nil {return nil ,_afe ;};_dba :=_gag .Image ();if _bdb !=nil {_ggg ,_cd :=(_bdb .Llx -_aa )*_ge ._bda ,(_bdb .Lly -_ab )*_ge ._bda ;_fff :=_bb .Rect (0,0,int (_de ),int (_fbb ));_cf :=_bb .Pt (int (_ggg ),int (_ca -_cd -_fbb ));_ffd :=_bb .NewRGBA (_fff );
|
|
_cg .Draw (_ffd ,_fff ,_dba ,_cf ,_cg .Src );_dba =_ffd ;};return _dba ,nil ;};
|
|
|
|
// NewImageDevice returns a new image device.
|
|
func NewImageDevice ()*ImageDevice {const _ga ="r\u0065\u006e\u0064\u0065r.\u004ee\u0077\u0049\u006d\u0061\u0067e\u0044\u0065\u0076\u0069\u0063\u0065";_ff .TrackUse (_ga );return &ImageDevice {};};func _eda (_dgd string ,_afd _bb .Image ,_bdfc int )error {_adda ,_fgc :=_c .Create (_dgd );
|
|
if _fgc !=nil {return _fgc ;};defer _adda .Close ();return _bf .Encode (_adda ,_afd ,&_bf .Options {Quality :_bdfc });};
|
|
|
|
// RenderToPath converts the specified PDF page into an image and saves the
|
|
// result at the specified location.
|
|
func (_cab *ImageDevice )RenderToPath (page *_ba .PdfPage ,outputPath string )error {_afea ,_abg :=_cab .Render (page );if _abg !=nil {return _abg ;};_bfg :=_e .ToLower (_bdd .Ext (outputPath ));if _bfg ==""{return _bd .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 _bfg {case "\u002e\u0070\u006e\u0067":return _eedc (outputPath ,_afea );case "\u002e\u006a\u0070\u0067","\u002e\u006a\u0070e\u0067":return _eda (outputPath ,_afea ,100);};return _d .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",_bfg );
|
|
};type renderer struct{_bda float64 };var (_cfd =_bd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");_gc =_bd .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");
|
|
); |