mirror of
https://github.com/unidoc/unipdf.git
synced 2025-04-26 13:48:55 +08:00
146 lines
39 KiB
Go
146 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 (_a "errors";_dd "fmt";_ca "github.com/adrg/sysfont";_fcg "github.com/unidoc/unipdf/v3/common";_c "github.com/unidoc/unipdf/v3/contentstream";_ec "github.com/unidoc/unipdf/v3/contentstream/draw";_be "github.com/unidoc/unipdf/v3/core";
|
|
_fe "github.com/unidoc/unipdf/v3/internal/license";_beb "github.com/unidoc/unipdf/v3/internal/transform";_bg "github.com/unidoc/unipdf/v3/model";_ef "github.com/unidoc/unipdf/v3/render/internal/context";_cg "github.com/unidoc/unipdf/v3/render/internal/context/imagerender";
|
|
_ga "golang.org/x/image/draw";_fg "image";_b "image/color";_ad "image/draw";_gf "image/jpeg";_d "image/png";_e "math";_fd "os";_g "path/filepath";_fc "strings";);func _ffce (_fecd ,_aebb _fg .Image )_fg .Image {_efe ,_eefe :=_aebb .Bounds ().Size (),_fecd .Bounds ().Size ();
|
|
_daf ,_dgb :=_efe .X ,_efe .Y ;if _eefe .X > _daf {_daf =_eefe .X ;};if _eefe .Y > _dgb {_dgb =_eefe .Y ;};_ebda :=_fg .Rect (0,0,_daf ,_dgb );if _efe .X !=_daf ||_efe .Y !=_dgb {_fdec :=_fg .NewRGBA (_ebda );_ga .BiLinear .Scale (_fdec ,_ebda ,_fecd ,_aebb .Bounds (),_ga .Over ,nil );
|
|
_aebb =_fdec ;};if _eefe .X !=_daf ||_eefe .Y !=_dgb {_aege :=_fg .NewRGBA (_ebda );_ga .BiLinear .Scale (_aege ,_ebda ,_fecd ,_fecd .Bounds (),_ga .Over ,nil );_fecd =_aege ;};_fad :=_fg .NewRGBA (_ebda );_ga .DrawMask (_fad ,_ebda ,_fecd ,_fg .Point {},_aebb ,_fg .Point {},_ga .Over );
|
|
return _fad ;};func _gbcc (_abbe string ,_aaag _fg .Image ,_cef int )error {_afa ,_dedf :=_fd .Create (_abbe );if _dedf !=nil {return _dedf ;};defer _afa .Close ();return _gf .Encode (_afa ,_aaag ,&_gf .Options {Quality :_cef });};func _effd (_fadg *_bg .Image ,_edf _b .Color )_fg .Image {_fbf ,_gcg :=int (_fadg .Width ),int (_fadg .Height );
|
|
_aaea :=_fg .NewRGBA (_fg .Rect (0,0,_fbf ,_gcg ));for _bac :=0;_bac < _gcg ;_bac ++{for _ccb :=0;_ccb < _fbf ;_ccb ++{_bbcd ,_ede :=_fadg .ColorAt (_ccb ,_bac );if _ede !=nil {_fcg .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",_ccb ,_bac );
|
|
continue ;};_gefg ,_dea ,_afb ,_ :=_bbcd .RGBA ();var _edbd _b .Color ;if _gefg +_dea +_afb ==0{_edbd =_b .Transparent ;}else {_edbd =_edf ;};_aaea .Set (_ccb ,_bac ,_edbd );};};return _aaea ;};func _ggcf (_gffc *_bg .Image ,_eagf _b .Color )_fg .Image {_cefg ,_efcg :=int (_gffc .Width ),int (_gffc .Height );
|
|
_ggcd :=_fg .NewRGBA (_fg .Rect (0,0,_cefg ,_efcg ));for _ccg :=0;_ccg < _efcg ;_ccg ++{for _aae :=0;_aae < _cefg ;_aae ++{_cdfa ,_gbf :=_gffc .ColorAt (_aae ,_ccg );if _gbf !=nil {_fcg .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",_aae ,_ccg );
|
|
continue ;};_ffd ,_fgg ,_fda ,_ :=_cdfa .RGBA ();var _gddg _b .Color ;if _ffd +_fgg +_fda ==0{_gddg =_eagf ;}else {_gddg =_b .Transparent ;};_ggcd .Set (_aae ,_ccg ,_gddg );};};return _ggcd ;};func _aeef (_ddd _be .PdfObject ,_ebd _b .Color )(_fg .Image ,error ){_ffec ,_edaa :=_be .GetStream (_ddd );
|
|
if !_edaa {return nil ,nil ;};_cgdb ,_fde :=_bg .NewXObjectImageFromStream (_ffec );if _fde !=nil {return nil ,_fde ;};_cda ,_fde :=_cgdb .ToImage ();if _fde !=nil {return nil ,_fde ;};return _ggcf (_cda ,_ebd ),nil ;};
|
|
|
|
// RenderToPath converts the specified PDF page into an image and saves the
|
|
// result at the specified location.
|
|
func (_bf *ImageDevice )RenderToPath (page *_bg .PdfPage ,outputPath string )error {_fcgf ,_aaf :=_bf .Render (page );if _aaf !=nil {return _aaf ;};_gab :=_fc .ToLower (_g .Ext (outputPath ));if _gab ==""{return _a .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 _gab {case "\u002e\u0070\u006e\u0067":return _gdd (outputPath ,_fcgf );case "\u002e\u006a\u0070\u0067","\u002e\u006a\u0070e\u0067":return _gbcc (outputPath ,_fcgf ,100);};return _dd .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",_gab );
|
|
};func (_bfg renderer )renderContentStream (_dfb _ef .Context ,_faf string ,_eg *_bg .PdfPageResources )error {_abc ,_egg :=_c .NewContentStreamParser (_faf ).Parse ();if _egg !=nil {return _egg ;};_dc :=_dfb .TextState ();_dc .GlobalScale =_bfg ._ba ;
|
|
_ee :=map[string ]*_ef .TextFont {};_cab :=_ca .NewFinder (&_ca .FinderOpts {Extensions :[]string {"\u002e\u0074\u0074\u0066","\u002e\u0074\u0074\u0063"}});_eb :=_c .NewContentStreamProcessor (*_abc );_eb .AddHandler (_c .HandlerConditionEnumAllOperands ,"",func (_bbc *_c .ContentStreamOperation ,_dcd _c .GraphicsState ,_cgg *_bg .PdfPageResources )error {_fcg .Log .Debug ("\u0050\u0072\u006f\u0063\u0065\u0073\u0073\u0069\u006e\u0067\u0020\u0025\u0073",_bbc .Operand );
|
|
switch _bbc .Operand {case "\u0071":_dfb .Push ();case "\u0051":_dfb .Pop ();_dc =_dfb .TextState ();case "\u0063\u006d":if len (_bbc .Params )!=6{return _bbb ;};_gbg ,_ddb :=_be .GetNumbersAsFloat (_bbc .Params );if _ddb !=nil {return _ddb ;};_dee :=_beb .NewMatrix (_gbg [0],_gbg [1],_gbg [2],_gbg [3],_gbg [4],_gbg [5]);
|
|
_fcg .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",_dee );_dfb .SetMatrix (_dfb .Matrix ().Mult (_dee ));case "\u0077":if len (_bbc .Params )!=1{return _bbb ;
|
|
};_dg ,_gd :=_be .GetNumbersAsFloat (_bbc .Params );if _gd !=nil {return _gd ;};_dfb .SetLineWidth (_dg [0]);case "\u004a":if len (_bbc .Params )!=1{return _bbb ;};_eef ,_gc :=_be .GetIntVal (_bbc .Params [0]);if !_gc {return _fgff ;};switch _eef {case 0:_dfb .SetLineCap (_ef .LineCapButt );
|
|
case 1:_dfb .SetLineCap (_ef .LineCapRound );case 2:_dfb .SetLineCap (_ef .LineCapSquare );default:_fcg .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",_eef );
|
|
return _bbb ;};case "\u006a":if len (_bbc .Params )!=1{return _bbb ;};_abe ,_cag :=_be .GetIntVal (_bbc .Params [0]);if !_cag {return _fgff ;};switch _abe {case 0:_dfb .SetLineJoin (_ef .LineJoinBevel );case 1:_dfb .SetLineJoin (_ef .LineJoinRound );case 2:_dfb .SetLineJoin (_ef .LineJoinBevel );
|
|
default:_fcg .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",_abe );return _bbb ;};case "\u004d":if len (_bbc .Params )!=1{return _bbb ;};_bab ,_aeg :=_be .GetNumbersAsFloat (_bbc .Params );
|
|
if _aeg !=nil {return _aeg ;};_ =_bab ;_fcg .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 (_bbc .Params )!=2{return _bbb ;};_feg ,_ea :=_be .GetArray (_bbc .Params [0]);
|
|
if !_ea {return _fgff ;};_dff ,_ea :=_be .GetIntVal (_bbc .Params [1]);if !_ea {return _fgff ;};_cac ,_dbd :=_be .GetNumbersAsFloat (_feg .Elements ());if _dbd !=nil {return _dbd ;};_dfb .SetDash (_cac ...);_ =_dff ;_fcg .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":_fcg .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":_fcg .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 (_bbc .Params )!=1{return _bbb ;};_cc ,_gba :=_be .GetName (_bbc .Params [0]);if !_gba {return _fgff ;};if _cc ==nil {return _bbb ;};_gfff ,_gba :=_cgg .GetExtGState (*_cc );if !_gba {_fcg .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",*_cc );
|
|
return _a .New ("\u0072e\u0073o\u0075\u0072\u0063\u0065\u0020n\u006f\u0074 \u0066\u006f\u0075\u006e\u0064");};_ag ,_gba :=_be .GetDict (_gfff );if !_gba {_fcg .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 _fgff ;};_fcg .Log .Debug ("G\u0053\u0020\u0064\u0069\u0063\u0074\u003a\u0020\u0025\u0073",_ag .String ());case "\u006d":if len (_bbc .Params )!=2{_fcg .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",_bbb );
|
|
return nil ;};_agb ,_bfge :=_be .GetNumbersAsFloat (_bbc .Params );if _bfge !=nil {return _bfge ;};_fcg .Log .Debug ("M\u006f\u0076\u0065\u0020\u0074\u006f\u003a\u0020\u0025\u0076",_agb );_dfb .NewSubPath ();_dfb .MoveTo (_agb [0],_agb [1]);case "\u006c":if len (_bbc .Params )!=2{_fcg .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",_bbb );
|
|
return nil ;};_ge ,_eda :=_be .GetNumbersAsFloat (_bbc .Params );if _eda !=nil {return _eda ;};_dfb .LineTo (_ge [0],_ge [1]);case "\u0063":if len (_bbc .Params )!=6{return _bbb ;};_acg ,_bed :=_be .GetNumbersAsFloat (_bbc .Params );if _bed !=nil {return _bed ;
|
|
};_fcg .Log .Debug ("\u0043u\u0062\u0069\u0063\u0020\u0062\u0065\u007a\u0069\u0065\u0072\u0020p\u0061\u0072\u0061\u006d\u0073\u003a\u0020\u0025\u002b\u0076",_acg );_dfb .CubicTo (_acg [0],_acg [1],_acg [2],_acg [3],_acg [4],_acg [5]);case "\u0076","\u0079":if len (_bbc .Params )!=4{return _bbb ;
|
|
};_gfg ,_egb :=_be .GetNumbersAsFloat (_bbc .Params );if _egb !=nil {return _egb ;};_fcg .Log .Debug ("\u0043u\u0062\u0069\u0063\u0020\u0062\u0065\u007a\u0069\u0065\u0072\u0020p\u0061\u0072\u0061\u006d\u0073\u003a\u0020\u0025\u002b\u0076",_gfg );_dfb .QuadraticTo (_gfg [0],_gfg [1],_gfg [2],_gfg [3]);
|
|
case "\u0068":_dfb .ClosePath ();_dfb .NewSubPath ();case "\u0072\u0065":if len (_bbc .Params )!=4{return _bbb ;};_abeg ,_fdfg :=_be .GetNumbersAsFloat (_bbc .Params );if _fdfg !=nil {return _fdfg ;};_dfb .DrawRectangle (_abeg [0],_abeg [1],_abeg [2],_abeg [3]);
|
|
_dfb .NewSubPath ();case "\u0053":_fac ,_fcbf :=_dcd .ColorspaceStroking .ColorToRGB (_dcd .ColorStroking );if _fcbf !=nil {_fcg .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",_fcbf );
|
|
return _fcbf ;};_gg ,_cba :=_fac .(*_bg .PdfColorDeviceRGB );if !_cba {_fcg .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _fcbf ;};_dfb .SetRGBA (_gg .R (),_gg .G (),_gg .B (),1);
|
|
_dfb .Stroke ();case "\u0073":_gfe ,_ddg :=_dcd .ColorspaceStroking .ColorToRGB (_dcd .ColorStroking );if _ddg !=nil {_fcg .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",_ddg );
|
|
return _ddg ;};_eba ,_aec :=_gfe .(*_bg .PdfColorDeviceRGB );if !_aec {_fcg .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _ddg ;};_dfb .ClosePath ();_dfb .NewSubPath ();
|
|
_dfb .SetRGBA (_eba .R (),_eba .G (),_eba .B (),1);_dfb .Stroke ();case "\u0066","\u0046":_dgf ,_fgd :=_dcd .ColorspaceNonStroking .ColorToRGB (_dcd .ColorNonStroking );if _fgd !=nil {_fcg .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",_fgd );
|
|
return _fgd ;};_gdb ,_eag :=_dgf .(*_bg .PdfColorDeviceRGB );if !_eag {_fcg .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _fgd ;};_dfb .SetRGBA (_gdb .R (),_gdb .G (),_gdb .B (),1);
|
|
_dfb .SetFillRule (_ef .FillRuleWinding );_dfb .Fill ();case "\u0066\u002a":_fdb ,_cgf :=_dcd .ColorspaceNonStroking .ColorToRGB (_dcd .ColorNonStroking );if _cgf !=nil {_fcg .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 _cgf ;};_bbgg ,_cabc :=_fdb .(*_bg .PdfColorDeviceRGB );if !_cabc {_fcg .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _cgf ;};_dfb .SetRGBA (_bbgg .R (),_bbgg .G (),_bbgg .B (),1);
|
|
_dfb .SetFillRule (_ef .FillRuleEvenOdd );_dfb .Fill ();case "\u0042":_afd ,_gcb :=_dcd .ColorspaceNonStroking .ColorToRGB (_dcd .ColorNonStroking );if _gcb !=nil {_fcg .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",_gcb );
|
|
return _gcb ;};_bdg :=_afd .(*_bg .PdfColorDeviceRGB );_dfb .SetRGBA (_bdg .R (),_bdg .G (),_bdg .B (),1);_dfb .SetFillRule (_ef .FillRuleWinding );_dfb .FillPreserve ();_afd ,_gcb =_dcd .ColorspaceStroking .ColorToRGB (_dcd .ColorStroking );if _gcb !=nil {_fcg .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",_gcb );
|
|
return _gcb ;};_bdg =_afd .(*_bg .PdfColorDeviceRGB );_dfb .SetRGBA (_bdg .R (),_bdg .G (),_bdg .B (),1);_dfb .Stroke ();case "\u0042\u002a":_ebb ,_efb :=_dcd .ColorspaceNonStroking .ColorToRGB (_dcd .ColorNonStroking );if _efb !=nil {_fcg .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",_efb );
|
|
return _efb ;};_cbe :=_ebb .(*_bg .PdfColorDeviceRGB );_dfb .SetRGBA (_cbe .R (),_cbe .G (),_cbe .B (),1);_dfb .SetFillRule (_ef .FillRuleEvenOdd );_dfb .FillPreserve ();_ebb ,_efb =_dcd .ColorspaceStroking .ColorToRGB (_dcd .ColorStroking );if _efb !=nil {_fcg .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",_efb );
|
|
return _efb ;};_cbe =_ebb .(*_bg .PdfColorDeviceRGB );_dfb .SetRGBA (_cbe .R (),_cbe .G (),_cbe .B (),1);_dfb .Stroke ();case "\u0062":_eeb ,_dfe :=_dcd .ColorspaceNonStroking .ColorToRGB (_dcd .ColorNonStroking );if _dfe !=nil {_fcg .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 _dfe ;};_cff :=_eeb .(*_bg .PdfColorDeviceRGB );_dfb .SetRGBA (_cff .R (),_cff .G (),_cff .B (),1);_dfb .ClosePath ();_dfb .NewSubPath ();_dfb .SetFillRule (_ef .FillRuleWinding );_dfb .FillPreserve ();_eeb ,_dfe =_dcd .ColorspaceStroking .ColorToRGB (_dcd .ColorStroking );
|
|
if _dfe !=nil {_fcg .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 _dfe ;};_cff =_eeb .(*_bg .PdfColorDeviceRGB );_dfb .SetRGBA (_cff .R (),_cff .G (),_cff .B (),1);
|
|
_dfb .Stroke ();case "\u0062\u002a":_dfb .ClosePath ();_bbce ,_fcd :=_dcd .ColorspaceNonStroking .ColorToRGB (_dcd .ColorNonStroking );if _fcd !=nil {_fcg .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_fcd );
|
|
return _fcd ;};_cdf :=_bbce .(*_bg .PdfColorDeviceRGB );_dfb .SetRGBA (_cdf .R (),_cdf .G (),_cdf .B (),1);_dfb .NewSubPath ();_dfb .SetFillRule (_ef .FillRuleEvenOdd );_dfb .FillPreserve ();_bbce ,_fcd =_dcd .ColorspaceStroking .ColorToRGB (_dcd .ColorStroking );
|
|
if _fcd !=nil {_fcg .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_fcd );return _fcd ;};_cdf =_bbce .(*_bg .PdfColorDeviceRGB );_dfb .SetRGBA (_cdf .R (),_cdf .G (),_cdf .B (),1);
|
|
_dfb .Stroke ();case "\u006e":_dfb .ClearPath ();case "\u0057":_dfb .SetFillRule (_ef .FillRuleWinding );_dfb .ClipPreserve ();case "\u0057\u002a":_dfb .SetFillRule (_ef .FillRuleEvenOdd );_dfb .ClipPreserve ();case "\u0072\u0067":_ggb ,_deg :=_dcd .ColorNonStroking .(*_bg .PdfColorDeviceRGB );
|
|
if !_deg {_fcg .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",_dcd .ColorNonStroking );return nil ;};_dfb .SetFillRGBA (_ggb .R (),_ggb .G (),_ggb .B (),1);
|
|
case "\u0052\u0047":_cge ,_caf :=_dcd .ColorStroking .(*_bg .PdfColorDeviceRGB );if !_caf {_fcg .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",_dcd .ColorStroking );
|
|
return nil ;};_dfb .SetStrokeRGBA (_cge .R (),_cge .G (),_cge .B (),1);case "\u006b":_ffe ,_afdc :=_dcd .ColorNonStroking .(*_bg .PdfColorDeviceCMYK );if !_afdc {_fcg .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",_dcd .ColorNonStroking );
|
|
return nil ;};_ega ,_ebbg :=_dcd .ColorspaceNonStroking .ColorToRGB (_ffe );if _ebbg !=nil {_fcg .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",_dcd .ColorNonStroking );
|
|
return nil ;};_bbe ,_afdc :=_ega .(*_bg .PdfColorDeviceRGB );if !_afdc {_fcg .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_ega );return nil ;
|
|
};_dfb .SetFillRGBA (_bbe .R (),_bbe .G (),_bbe .B (),1);case "\u004b":_dffb ,_bbeg :=_dcd .ColorStroking .(*_bg .PdfColorDeviceCMYK );if !_bbeg {_fcg .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",_dcd .ColorStroking );
|
|
return nil ;};_eefc ,_bag :=_dcd .ColorspaceStroking .ColorToRGB (_dffb );if _bag !=nil {_fcg .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",_dcd .ColorStroking );
|
|
return nil ;};_abd ,_bbeg :=_eefc .(*_bg .PdfColorDeviceRGB );if !_bbeg {_fcg .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",_eefc );return nil ;
|
|
};_dfb .SetStrokeRGBA (_abd .R (),_abd .G (),_abd .B (),1);case "\u0067":_fca ,_bc :=_dcd .ColorNonStroking .(*_bg .PdfColorDeviceGray );if !_bc {_fcg .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",_dcd .ColorNonStroking );
|
|
return nil ;};_aef ,_fbd :=_dcd .ColorspaceNonStroking .ColorToRGB (_fca );if _fbd !=nil {_fcg .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",_dcd .ColorNonStroking );
|
|
return nil ;};_gec ,_bc :=_aef .(*_bg .PdfColorDeviceRGB );if !_bc {_fcg .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 nil ;
|
|
};_dfb .SetFillRGBA (_gec .R (),_gec .G (),_gec .B (),1);case "\u0047":_cfe ,_adb :=_dcd .ColorStroking .(*_bg .PdfColorDeviceGray );if !_adb {_fcg .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",_dcd .ColorStroking );
|
|
return nil ;};_fbg ,_ded :=_dcd .ColorspaceStroking .ColorToRGB (_cfe );if _ded !=nil {_fcg .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",_dcd .ColorStroking );
|
|
return nil ;};_eab ,_adb :=_fbg .(*_bg .PdfColorDeviceRGB );if !_adb {_fcg .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",_fbg );return nil ;
|
|
};_dfb .SetStrokeRGBA (_eab .R (),_eab .G (),_eab .B (),1);case "\u0063\u0073","\u0073\u0063","\u0073\u0063\u006e":_fge ,_gef :=_dcd .ColorspaceNonStroking .ColorToRGB (_dcd .ColorNonStroking );if _gef !=nil {_fcg .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",_dcd .ColorNonStroking );
|
|
return nil ;};_da ,_fgdb :=_fge .(*_bg .PdfColorDeviceRGB );if !_fgdb {_fcg .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",_fge );return nil ;
|
|
};_dfb .SetFillRGBA (_da .R (),_da .G (),_da .B (),1);case "\u0043\u0053","\u0053\u0043","\u0053\u0043\u004e":_bcd ,_bba :=_dcd .ColorspaceStroking .ColorToRGB (_dcd .ColorStroking );if _bba !=nil {_fcg .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",_dcd .ColorStroking );
|
|
return nil ;};_cce ,_aba :=_bcd .(*_bg .PdfColorDeviceRGB );if !_aba {_fcg .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",_bcd );return nil ;
|
|
};_dfb .SetStrokeRGBA (_cce .R (),_cce .G (),_cce .B (),1);case "\u0044\u006f":if len (_bbc .Params )!=1{return _bbb ;};_cad ,_cfb :=_be .GetName (_bbc .Params [0]);if !_cfb {return _fgff ;};_ ,_dcg :=_cgg .GetXObjectByName (*_cad );switch _dcg {case _bg .XObjectTypeImage :_fcg .Log .Debug ("\u0058\u004f\u0062\u006a\u0065\u0063\u0074\u0020\u0069\u006d\u0061\u0067e\u003a\u0020\u0025\u0073",_cad .String ());
|
|
_ccec ,_fafb :=_cgg .GetXObjectImageByName (*_cad );if _fafb !=nil {return _fafb ;};_bec ,_fafb :=_ccec .ToImage ();if _fafb !=nil {return _fafb ;};if _bdb :=_ccec .ColorSpace ;_bdb !=nil {var _gfb bool ;switch _bdb .(type ){case *_bg .PdfColorspaceSpecialIndexed :_gfb =true ;
|
|
};if _gfb {if _gae ,_gag :=_bdb .ImageToRGB (*_bec );_gag !=nil {_fcg .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 {_bec =&_gae ;};};};_gbc :=_dfb .FillPattern ().ColorAt (0,0);var _aee _fg .Image ;if _ccec .Mask !=nil {if _aee ,_fafb =_aeef (_ccec .Mask ,_gbc );_fafb !=nil {_fcg .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 _ccec .SMask !=nil {if _aee ,_fafb =_dge (_ccec .SMask ,_gbc );_fafb !=nil {_fcg .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 _ffg _fg .Image ;if _agd ,_ :=_be .GetBoolVal (_ccec .ImageMask );_agd {_ffg =_ggcf (_bec ,_gbc );}else {_ffg ,_fafb =_bec .ToGoImage ();if _fafb !=nil {return _fafb ;};};if _aee !=nil {_ffg =_ffce (_ffg ,_aee );};_ecc :=_ffg .Bounds ();_dfb .Push ();
|
|
_dfb .Scale (1.0/float64 (_ecc .Dx ()),-1.0/float64 (_ecc .Dy ()));_dfb .DrawImageAnchored (_ffg ,0,0,0,1);_dfb .Pop ();case _bg .XObjectTypeForm :_fcg .Log .Debug ("\u0058\u004fb\u006a\u0065\u0063t\u0020\u0066\u006f\u0072\u006d\u003a\u0020\u0025\u0073",_cad .String ());
|
|
_cbc ,_ece :=_cgg .GetXObjectFormByName (*_cad );if _ece !=nil {return _ece ;};_bda ,_ece :=_cbc .GetContentStream ();if _ece !=nil {return _ece ;};_edb :=_cbc .Resources ;if _edb ==nil {_edb =_cgg ;};_dfb .Push ();if _cbc .Matrix !=nil {_dae ,_dab :=_be .GetArray (_cbc .Matrix );
|
|
if !_dab {return _fgff ;};_cgfe ,_abdd :=_be .GetNumbersAsFloat (_dae .Elements ());if _abdd !=nil {return _abdd ;};if len (_cgfe )!=6{return _bbb ;};_acag :=_beb .NewMatrix (_cgfe [0],_cgfe [1],_cgfe [2],_cgfe [3],_cgfe [4],_cgfe [5]);_dfb .SetMatrix (_dfb .Matrix ().Mult (_acag ));
|
|
};if _cbc .BBox !=nil {_aff ,_ebe :=_be .GetArray (_cbc .BBox );if !_ebe {return _fgff ;};_abg ,_babe :=_be .GetNumbersAsFloat (_aff .Elements ());if _babe !=nil {return _babe ;};if len (_abg )!=4{_fcg .Log .Debug ("\u004c\u0065\u006e\u0020\u003d\u0020\u0025\u0064",len (_abg ));
|
|
return _bbb ;};_dfb .DrawRectangle (_abg [0],_abg [1],_abg [2]-_abg [0],_abg [3]-_abg [1]);_dfb .SetRGBA (1,0,0,1);_dfb .Clip ();}else {_fcg .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");
|
|
};_ece =_bfg .renderContentStream (_dfb ,string (_bda ),_edb );if _ece !=nil {return _ece ;};_dfb .Pop ();};case "\u0042\u0049":if len (_bbc .Params )!=1{return _bbb ;};_edg ,_cfcf :=_bbc .Params [0].(*_c .ContentStreamInlineImage );if !_cfcf {return nil ;
|
|
};_abcf ,_face :=_edg .ToImage (_cgg );if _face !=nil {return _face ;};_eff ,_face :=_abcf .ToGoImage ();if _face !=nil {return _face ;};_agf :=_eff .Bounds ();_dfb .Push ();_dfb .Scale (1.0/float64 (_agf .Dx ()),-1.0/float64 (_agf .Dy ()));_dfb .DrawImageAnchored (_eff ,0,0,0,1);
|
|
_dfb .Pop ();case "\u0042\u0054":_dc .Reset ();case "\u0045\u0054":_dc .Reset ();case "\u0054\u0072":if len (_bbc .Params )!=1{return _bbb ;};_fgfb ,_gcf :=_be .GetNumberAsFloat (_bbc .Params [0]);if _gcf !=nil {return _gcf ;};_dc .Tr =_ef .TextRenderingMode (_fgfb );
|
|
case "\u0054\u004c":if len (_bbc .Params )!=1{return _bbb ;};_fae ,_afe :=_be .GetNumberAsFloat (_bbc .Params [0]);if _afe !=nil {return _afe ;};_dc .Tl =_fae ;case "\u0054\u0063":if len (_bbc .Params )!=1{return _bbb ;};_gfd ,_cfa :=_be .GetNumberAsFloat (_bbc .Params [0]);
|
|
if _cfa !=nil {return _cfa ;};_fcg .Log .Debug ("\u0054\u0063\u003a\u0020\u0025\u0076",_gfd );_dc .Tc =_gfd ;case "\u0054\u0077":if len (_bbc .Params )!=1{return _bbb ;};_fcaf ,_egba :=_be .GetNumberAsFloat (_bbc .Params [0]);if _egba !=nil {return _egba ;
|
|
};_fcg .Log .Debug ("\u0054\u0077\u003a\u0020\u0025\u0076",_fcaf );_dc .Tw =_fcaf ;case "\u0054\u007a":if len (_bbc .Params )!=1{return _bbb ;};_ddgf ,_daef :=_be .GetNumberAsFloat (_bbc .Params [0]);if _daef !=nil {return _daef ;};_dc .Th =_ddgf ;case "\u0054\u0073":if len (_bbc .Params )!=1{return _bbb ;
|
|
};_bdae ,_cbb :=_be .GetNumberAsFloat (_bbc .Params [0]);if _cbb !=nil {return _cbb ;};_dc .Ts =_bdae ;case "\u0054\u0064":if len (_bbc .Params )!=2{return _bbb ;};_fec ,_dgg :=_be .GetNumbersAsFloat (_bbc .Params );if _dgg !=nil {return _dgg ;};_fcg .Log .Debug ("\u0054\u0064\u003a\u0020\u0025\u0076",_fec );
|
|
_dc .ProcTd (_fec [0],_fec [1]);case "\u0054\u0044":if len (_bbc .Params )!=2{return _bbb ;};_fcc ,_gda :=_be .GetNumbersAsFloat (_bbc .Params );if _gda !=nil {return _gda ;};_fcg .Log .Debug ("\u0054\u0044\u003a\u0020\u0025\u0076",_fcc );_dc .ProcTD (_fcc [0],_fcc [1]);
|
|
case "\u0054\u002a":_dc .ProcTStar ();case "\u0054\u006d":if len (_bbc .Params )!=6{return _bbb ;};_aegf ,_efbf :=_be .GetNumbersAsFloat (_bbc .Params );if _efbf !=nil {return _efbf ;};_fcg .Log .Debug ("\u0054\u0065x\u0074\u0020\u006da\u0074\u0072\u0069\u0078\u003a\u0020\u0025\u002b\u0076",_aegf );
|
|
_dc .ProcTm (_aegf [0],_aegf [1],_aegf [2],_aegf [3],_aegf [4],_aegf [5]);case "\u0027":if len (_bbc .Params )!=1{return _bbb ;};_ffgb ,_ggd :=_be .GetStringBytes (_bbc .Params [0]);if !_ggd {return _fgff ;};_fcg .Log .Debug ("\u0027\u0020\u0073t\u0072\u0069\u006e\u0067\u003a\u0020\u0025\u0073",string (_ffgb ));
|
|
_dc .ProcQ (_ffgb ,_dfb );case "\u0022":if len (_bbc .Params )!=3{return _bbb ;};_bgg ,_dca :=_be .GetNumberAsFloat (_bbc .Params [0]);if _dca !=nil {return _dca ;};_gffg ,_dca :=_be .GetNumberAsFloat (_bbc .Params [1]);if _dca !=nil {return _dca ;};_cgge ,_abb :=_be .GetStringBytes (_bbc .Params [2]);
|
|
if !_abb {return _fgff ;};_dc .ProcDQ (_cgge ,_bgg ,_gffg ,_dfb );case "\u0054\u006a":if len (_bbc .Params )!=1{return _bbb ;};_agbd ,_dcf :=_be .GetStringBytes (_bbc .Params [0]);if !_dcf {return _fgff ;};_fcg .Log .Debug ("\u0054j\u0020s\u0074\u0072\u0069\u006e\u0067\u003a\u0020\u0060\u0025\u0073\u0060",string (_agbd ));
|
|
_dc .ProcTj (_agbd ,_dfb );case "\u0054\u004a":if len (_bbc .Params )!=1{return _bbb ;};_dfec ,_ceg :=_be .GetArray (_bbc .Params [0]);if !_ceg {_fcg .Log .Debug ("\u0054\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_dfec );return _fgff ;};_fcg .Log .Debug ("\u0054\u004a\u0020\u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u002b\u0076",_dfec );
|
|
for _ ,_fdbd :=range _dfec .Elements (){switch _bbcg :=_fdbd .(type ){case *_be .PdfObjectString :if _bbcg !=nil {_dc .ProcTj (_bbcg .Bytes (),_dfb );};case *_be .PdfObjectFloat ,*_be .PdfObjectInteger :_acb ,_edd :=_be .GetNumberAsFloat (_bbcg );if _edd ==nil {_dc .Translate (-_acb *0.001*_dc .Tf .Size *_dc .Th /100.0,0);
|
|
};};};case "\u0054\u0066":if len (_bbc .Params )!=2{return _bbb ;};_fcg .Log .Debug ("\u0025\u0023\u0076",_bbc .Params );_gge ,_ggc :=_be .GetName (_bbc .Params [0]);if !_ggc ||_gge ==nil {_fcg .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",_bbc .Params [0]);
|
|
return _fgff ;};_fcg .Log .Debug ("\u0046\u006f\u006e\u0074\u0020\u006e\u0061\u006d\u0065\u003a\u0020\u0025\u0073",_gge .String ());_bdac ,_aegc :=_be .GetNumberAsFloat (_bbc .Params [1]);if _aegc !=nil {_fcg .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",_bbc .Params [1]);
|
|
return _fgff ;};_fcg .Log .Debug ("\u0046\u006f\u006e\u0074\u0020\u0073\u0069\u007a\u0065\u003a\u0020\u0025\u0076",_bdac );_fdbdc ,_fba :=_cgg .GetFontByName (*_gge );if !_fba {_fcg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0046\u006f\u006e\u0074\u0020\u0025s\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064",_gge .String ());
|
|
return _a .New ("\u0066\u006f\u006e\u0074\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};_fcg .Log .Debug ("\u0046\u006f\u006e\u0074\u003a\u0020\u0025\u0054",_fdbdc );_aaa ,_ggc :=_be .GetDict (_fdbdc );if !_ggc {_fcg .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 _fgff ;};_cga ,_aegc :=_bg .NewPdfFontFromPdfObject (_aaa );if _aegc !=nil {_fcg .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 _aegc ;};_cgb :=_cga .BaseFont ();if _cgb ==""{_cgb =_gge .String ();};_cdfb ,_ggc :=_ee [_cgb ];if !_ggc {_cdfb ,_aegc =_ef .NewTextFont (_cga ,_bdac );if _aegc !=nil {_fcg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_aegc );};};
|
|
if _cdfb ==nil {if len (_cgb )> 7&&_cgb [6]=='+'{_cgb =_cgb [7:];};_bbgd :=[]string {_cgb ,"\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 _ ,_cceg :=range _bbgd {_fcg .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",_cceg );if _cdfb ,_ggc =_ee [_cceg ];
|
|
_ggc {break ;};_beg :=_cab .Match (_cceg );if _beg ==nil {_fcg .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",_cceg );continue ;};_cdfb ,_aegc =_ef .NewTextFontFromPath (_beg .Filename ,_bdac );
|
|
if _aegc !=nil {_fcg .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",_beg .Filename );continue ;};_fcg .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",_cgb ,_beg .Name ,_beg .Filename );
|
|
_ee [_cceg ]=_cdfb ;break ;};};if _cdfb ==nil {_fcg .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 _a .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");};_dc .ProcTf (_cdfb .WithSize (_bdac ,_cga ));case "\u0042\u004d\u0043","\u0042\u0044\u0043":case "\u0045\u004d\u0043":default:_fcg .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",_bbc .Operand );
|
|
};return nil ;});_egg =_eb .Process (_eg );if _egg !=nil {return _egg ;};return nil ;};
|
|
|
|
// Render converts the specified PDF page into an image and returns the result.
|
|
func (_bb *ImageDevice )Render (page *_bg .PdfPage )(_fg .Image ,error ){_gff ,_fcb :=page .GetMediaBox ();if _fcb !=nil {return nil ,_fcb ;};_gff .Normalize ();_fa :=page .CropBox ;var _efc ,_db float64 ;if _fa !=nil {_fa .Normalize ();_efc ,_db =_fa .Width (),_fa .Height ();
|
|
};_ab :=page .Rotate ;_ac ,_ff ,_ed ,_af :=_gff .Llx ,_gff .Lly ,_gff .Width (),_gff .Height ();_cgd :=_beb .IdentityMatrix ();if _ab !=nil &&*_ab %360!=0&&*_ab %90==0{_aa :=-float64 (*_ab );_ce :=_babb (_ed ,_af ,_aa );_cgd =_cgd .Translate ((_ce .Width -_ed )/2+_ed /2,(_ce .Height -_af )/2+_af /2).Rotate (_aa *_e .Pi /180).Translate (-_ed /2,-_af /2);
|
|
_ed ,_af =_ce .Width ,_ce .Height ;if _fa !=nil {_ced :=_babb (_efc ,_db ,_aa );_efc ,_db =_ced .Width ,_ced .Height ;};};if _ac !=0||_ff !=0{_cgd =_cgd .Translate (-_ac ,-_ff );};_bb ._ba =1.0;if _bb .OutputWidth !=0{_ffc :=_ed ;if _fa !=nil {_ffc =_efc ;
|
|
};_bb ._ba =float64 (_bb .OutputWidth )/_ffc ;_ed ,_af ,_efc ,_db =_ed *_bb ._ba ,_af *_bb ._ba ,_efc *_bb ._ba ,_db *_bb ._ba ;_cgd =_beb .ScaleMatrix (_bb ._ba ,_bb ._ba ).Mult (_cgd );};_fgf :=_cg .NewContext (int (_ed ),int (_af ));if _cf :=_bb .renderPage (_fgf ,page ,_cgd );
|
|
_cf !=nil {return nil ,_cf ;};_cfc :=_fgf .Image ();if _fa !=nil {_gb ,_df :=(_fa .Llx -_ac )*_bb ._ba ,(_fa .Lly -_ff )*_bb ._ba ;_ae :=_fg .Rect (0,0,int (_efc ),int (_db ));_aeb :=_fg .Pt (int (_gb ),int (_af -_df -_db ));_fdf :=_fg .NewRGBA (_ae );
|
|
_ad .Draw (_fdf ,_ae ,_cfc ,_aeb ,_ad .Src );_cfc =_fdf ;};return _cfc ,nil ;};func _babb (_gage ,_cega ,_cbad float64 )_ec .BoundingBox {return _ec .Path {Points :[]_ec .Point {_ec .NewPoint (0,0).Rotate (_cbad ),_ec .NewPoint (_gage ,0).Rotate (_cbad ),_ec .NewPoint (0,_cega ).Rotate (_cbad ),_ec .NewPoint (_gage ,_cega ).Rotate (_cbad )}}.GetBoundingBox ();
|
|
};type renderer struct{_ba float64 };
|
|
|
|
// NewImageDevice returns a new image device.
|
|
func NewImageDevice ()*ImageDevice {const _adg ="r\u0065\u006e\u0064\u0065r.\u004ee\u0077\u0049\u006d\u0061\u0067e\u0044\u0065\u0076\u0069\u0063\u0065";_fe .TrackUse (_adg );return &ImageDevice {};};func _dge (_cbee _be .PdfObject ,_ebc _b .Color )(_fg .Image ,error ){_becb ,_geb :=_be .GetStream (_cbee );
|
|
if !_geb {return nil ,nil ;};_egge ,_bea :=_bg .NewXObjectImageFromStream (_becb );if _bea !=nil {return nil ,_bea ;};_cgeb ,_bea :=_egge .ToImage ();if _bea !=nil {return nil ,_bea ;};return _effd (_cgeb ,_ebc ),nil ;};
|
|
|
|
// 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 _gdd (_fcgfe string ,_eabg _fg .Image )error {_gaea ,_cec :=_fd .Create (_fcgfe );if _cec !=nil {return _cec ;};defer _gaea .Close ();return _d .Encode (_gaea ,_eabg );};func (_fb renderer )renderPage (_fce _ef .Context ,_aca *_bg .PdfPage ,_fef _beb .Matrix )error {_bbg ,_cb :=_aca .GetAllContentStreams ();
|
|
if _cb !=nil {return _cb ;};if _de :=_fef ;!_de .Identity (){_bbg =_dd .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",_de [0],_de [1],_de [3],_de [4],_de [6],_de [7],_bbg );
|
|
};_fce .Translate (0,float64 (_fce .Height ()));_fce .Scale (1,-1);_fce .Push ();_fce .SetRGBA (1,1,1,1);_fce .DrawRectangle (0,0,float64 (_fce .Width ()),float64 (_fce .Height ()));_fce .Fill ();_fce .Pop ();_fce .SetLineWidth (1.0);_fce .SetRGBA (0,0,0,1);
|
|
return _fb .renderContentStream (_fce ,_bbg ,_aca .Resources );};var (_fgff =_a .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");_bbb =_a .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");
|
|
); |