mirror of
https://github.com/unidoc/unipdf.git
synced 2025-04-26 13:48:55 +08:00
197 lines
52 KiB
Go
197 lines
52 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 (_fg "errors";_gb "fmt";_eda "github.com/adrg/sysfont";_ac "github.com/unidoc/unipdf/v3/common";_fgb "github.com/unidoc/unipdf/v3/contentstream";_dg "github.com/unidoc/unipdf/v3/contentstream/draw";_c "github.com/unidoc/unipdf/v3/core";
|
|
_ab "github.com/unidoc/unipdf/v3/internal/license";_gg "github.com/unidoc/unipdf/v3/internal/transform";_df "github.com/unidoc/unipdf/v3/model";_fc "github.com/unidoc/unipdf/v3/render/internal/context";_gc "github.com/unidoc/unipdf/v3/render/internal/context/imagerender";
|
|
_aef "golang.org/x/image/draw";_ed "image";_ae "image/color";_a "image/draw";_dbf "image/jpeg";_b "image/png";_db "math";_e "os";_g "path/filepath";_d "strings";);func _dfb (_bdc *_df .Image ,_bdac _ae .Color )_ed .Image {_acca ,_fgg :=int (_bdc .Width ),int (_bdc .Height );
|
|
_bbad :=_ed .NewRGBA (_ed .Rect (0,0,_acca ,_fgg ));for _abec :=0;_abec < _fgg ;_abec ++{for _fbed :=0;_fbed < _acca ;_fbed ++{_eecg ,_fea :=_bdc .ColorAt (_fbed ,_abec );if _fea !=nil {_ac .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",_fbed ,_abec );
|
|
continue ;};_bacdf ,_dfcb ,_bgad ,_ :=_eecg .RGBA ();var _abf _ae .Color ;if _bacdf +_dfcb +_bgad ==0{_abf =_bdac ;}else {_abf =_ae .Transparent ;};_bbad .Set (_fbed ,_abec ,_abf );};};return _bbad ;};var (_bdb =_fg .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
|
|
_ge =_fg .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072"););func _ebce (_gea ,_dadf _ed .Image )_ed .Image {_ggab ,_eab :=_dadf .Bounds ().Size (),_gea .Bounds ().Size ();_afa ,_cdc :=_ggab .X ,_ggab .Y ;
|
|
if _eab .X > _afa {_afa =_eab .X ;};if _eab .Y > _cdc {_cdc =_eab .Y ;};_efg :=_ed .Rect (0,0,_afa ,_cdc );if _ggab .X !=_afa ||_ggab .Y !=_cdc {_geda :=_ed .NewRGBA (_efg );_aef .BiLinear .Scale (_geda ,_efg ,_gea ,_dadf .Bounds (),_aef .Over ,nil );_dadf =_geda ;
|
|
};if _eab .X !=_afa ||_eab .Y !=_cdc {_cegf :=_ed .NewRGBA (_efg );_aef .BiLinear .Scale (_cegf ,_efg ,_gea ,_gea .Bounds (),_aef .Over ,nil );_gea =_cegf ;};_afab :=_ed .NewRGBA (_efg );_aef .DrawMask (_afab ,_efg ,_gea ,_ed .Point {},_dadf ,_ed .Point {},_aef .Over );
|
|
return _afab ;};func _aacf (_fggd ,_gcc ,_eadf float64 )_dg .BoundingBox {return _dg .Path {Points :[]_dg .Point {_dg .NewPoint (0,0).Rotate (_eadf ),_dg .NewPoint (_fggd ,0).Rotate (_eadf ),_dg .NewPoint (0,_gcc ).Rotate (_eadf ),_dg .NewPoint (_fggd ,_gcc ).Rotate (_eadf )}}.GetBoundingBox ();
|
|
};func (_dc renderer )renderPage (_eee _fc .Context ,_ce *_df .PdfPage ,_gd _gg .Matrix )error {_cdb ,_eb :=_ce .GetAllContentStreams ();if _eb !=nil {return _eb ;};if _gba :=_gd ;!_gba .Identity (){_cdb =_gb .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",_gba [0],_gba [1],_gba [3],_gba [4],_gba [6],_gba [7],_cdb );
|
|
};_eee .Translate (0,float64 (_eee .Height ()));_eee .Scale (1,-1);_eee .Push ();_eee .SetRGBA (1,1,1,1);_eee .DrawRectangle (0,0,float64 (_eee .Width ()),float64 (_eee .Height ()));_eee .Fill ();_eee .Pop ();_eee .SetLineWidth (1.0);_eee .SetRGBA (0,0,0,1);
|
|
return _dc .renderContentStream (_eee ,_cdb ,_ce .Resources );};
|
|
|
|
// RenderToPath converts the specified PDF page into an image and saves the
|
|
// result at the specified location.
|
|
func (_ba *ImageDevice )RenderToPath (page *_df .PdfPage ,outputPath string )error {_gf ,_abe :=_ba .Render (page );if _abe !=nil {return _abe ;};_gaf :=_d .ToLower (_g .Ext (outputPath ));if _gaf ==""{return _fg .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 _gaf {case "\u002e\u0070\u006e\u0067":return _eecb (outputPath ,_gf );case "\u002e\u006a\u0070\u0067","\u002e\u006a\u0070e\u0067":return _ebc (outputPath ,_gf ,100);};return _gb .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",_gaf );
|
|
};
|
|
|
|
// PdfShadingType defines PDF shading types.
|
|
// Source: PDF32000_2008.pdf. Chapter 8.7.4.5
|
|
type PdfShadingType int64 ;func (_fcg renderer )processLinearShading (_cbd _fc .Context ,_abd *_df .PdfShading )(_fc .Gradient ,*_c .PdfObjectArray ,error ){_afb :=_abd .GetContext ().(*_df .PdfShadingType2 );if len (_afb .Function )==0{return nil ,nil ,_fg .New ("\u006e\u006f\u0020\u0067\u0072\u0061\u0064i\u0065\u006e\u0074 \u0066\u0075\u006e\u0063t\u0069\u006f\u006e\u0020\u0066\u006f\u0075\u006e\u0064\u002c\u0020\u0073\u006b\u0069\u0070\u0020\u0063\u006f\u006e\u0076\u0065\u0072\u0073\u0069\u006f\u006e");
|
|
};_aae ,_becc :=_afb .Coords .ToFloat64Array ();if _becc !=nil {return nil ,nil ,_fg .New ("\u0066\u0061\u0069l\u0065\u0064\u0020\u0067e\u0074\u0074\u0069\u006e\u0067\u0020\u0073h\u0061\u0064\u0069\u006e\u0067\u0020\u0070\u006f\u0073\u0069\u0074\u0069\u006f\u006e");
|
|
};_gga :=_abd .ColorSpace ;_face ,_agab :=_cbd .Matrix ().Transform (_aae [0],_aae [1]);_efb ,_bccd :=_cbd .Matrix ().Transform (_aae [2],_aae [3]);_agec :=_gc .NewLinearGradient (_face ,_agab ,_efb ,_bccd );_fdafg :=_c .MakeArrayFromFloats ([]float64 {0,0,1,1});
|
|
for _ ,_eege :=range _aae {if _eege > 1{_fdafg =_afb .Coords ;break ;};};if _ecgb ,_agb :=_afb .Function [0].(*_df .PdfFunctionType2 );_agb {_agec ,_becc =_fde (_agec ,_ecgb ,_gga ,1.0,true );}else if _dbaf ,_ccc :=_afb .Function [0].(*_df .PdfFunctionType3 );
|
|
_ccc {_aaeg :=append ([]float64 {0},_dbaf .Bounds ...);_aaeg =append (_aaeg ,1.0);_agec ,_becc =_gdag (_agec ,_dbaf ,_gga ,_aaeg );};return _agec ,_fdafg ,_becc ;};func _fde (_ddec _fc .Gradient ,_eag *_df .PdfFunctionType2 ,_bdbd _df .PdfColorspace ,_acgc float64 ,_cac bool )(_fc .Gradient ,error ){switch _bdbd .(type ){case *_df .PdfColorspaceDeviceRGB :if len (_eag .C0 )!=3||len (_eag .C1 )!=3{return nil ,_fg .New ("\u0069\u006e\u0063\u006f\u0072\u0072\u0065\u0063\u0074\u0020\u0052\u0047\u0042\u0020\u0063o\u006co\u0072\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u006c\u0065\u006e\u0067\u0074\u0068");
|
|
};_ccb :=_eag .C0 ;_fcf :=_eag .C1 ;if _cac {_ddec .AddColorStop (0.0,_ae .RGBA {R :uint8 (_ccb [0]*255),G :uint8 (_ccb [1]*255),B :uint8 (_ccb [2]*255),A :255});};_ddec .AddColorStop (_acgc ,_ae .RGBA {R :uint8 (_fcf [0]*255),G :uint8 (_fcf [1]*255),B :uint8 (_fcf [2]*255),A :255});
|
|
case *_df .PdfColorspaceDeviceCMYK :if len (_eag .C0 )!=4||len (_eag .C1 )!=4{return nil ,_fg .New ("\u0069\u006e\u0063\u006f\u0072\u0072e\u0063\u0074\u0020\u0043\u004d\u0059\u004b\u0020\u0063\u006f\u006c\u006f\u0072 \u0061\u0072\u0072\u0061\u0079\u0020\u006ce\u006e\u0067\u0074\u0068");
|
|
};_bbce :=_eag .C0 ;_edeb :=_eag .C1 ;if _cac {_ddec .AddColorStop (0.0,_ae .CMYK {C :uint8 (_bbce [0]*255),M :uint8 (_bbce [1]*255),Y :uint8 (_bbce [2]*255),K :uint8 (_bbce [3]*255)});};_ddec .AddColorStop (_acgc ,_ae .CMYK {C :uint8 (_edeb [0]*255),M :uint8 (_edeb [1]*255),Y :uint8 (_edeb [2]*255),K :uint8 (_edeb [3]*255)});
|
|
default:return nil ,_gb .Errorf ("u\u006e\u0073\u0075\u0070\u0070\u006fr\u0074\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072 \u0073\u0070\u0061c\u0065:\u0020\u0025\u0073",_bdbd .String ());};return _ddec ,nil ;};func _gdag (_cfeg _fc .Gradient ,_gbca *_df .PdfFunctionType3 ,_caa _df .PdfColorspace ,_faee []float64 )(_fc .Gradient ,error ){var _ggg error ;
|
|
for _fdc :=0;_fdc < len (_gbca .Functions );_fdc ++{if _gdc ,_gdgc :=_gbca .Functions [_fdc ].(*_df .PdfFunctionType2 );_gdgc {_cfeg ,_ggg =_fde (_cfeg ,_gdc ,_caa ,_faee [_fdc +1],_fdc ==0);if _ggg !=nil {return nil ,_ggg ;};};};return _cfeg ,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 _gac (_fddf _c .PdfObject ,_eeaa _ae .Color )(_ed .Image ,error ){_fgbd ,_fedf :=_c .GetStream (_fddf );if !_fedf {return nil ,nil ;};_daf ,_bdgd :=_df .NewXObjectImageFromStream (_fgbd );if _bdgd !=nil {return nil ,_bdgd ;};_dabf ,_bdgd :=_daf .ToImage ();
|
|
if _bdgd !=nil {return nil ,_bdgd ;};return _dccg (_dabf ,_eeaa ),nil ;};func (_fbd renderer )processRadialShading (_ebd _fc .Context ,_egb *_df .PdfShading )(_fc .Gradient ,*_c .PdfObjectArray ,error ){_gcfa :=_egb .GetContext ().(*_df .PdfShadingType3 );
|
|
if len (_gcfa .Function )==0{return nil ,nil ,_fg .New ("\u006e\u006f\u0020\u0067\u0072\u0061\u0064i\u0065\u006e\u0074 \u0066\u0075\u006e\u0063t\u0069\u006f\u006e\u0020\u0066\u006f\u0075\u006e\u0064\u002c\u0020\u0073\u006b\u0069\u0070\u0020\u0063\u006f\u006e\u0076\u0065\u0072\u0073\u0069\u006f\u006e");
|
|
};_dcg ,_cfeb :=_gcfa .Coords .ToFloat64Array ();if _cfeb !=nil {return nil ,nil ,_fg .New ("\u0066\u0061\u0069l\u0065\u0064\u0020\u0067e\u0074\u0074\u0069\u006e\u0067\u0020\u0073h\u0061\u0064\u0069\u006e\u0067\u0020\u0070\u006f\u0073\u0069\u0074\u0069\u006f\u006e");
|
|
};_eece :=_egb .ColorSpace ;_acggc :=_c .MakeArrayFromFloats ([]float64 {0,0,1,1});var _bdd ,_fdaa ,_ffef ,_adg ,_fcdb ,_fgd float64 ;_bdd ,_fdaa =_ebd .Matrix ().Transform (_dcg [0],_dcg [1]);_ffef ,_adg =_ebd .Matrix ().Transform (_dcg [3],_dcg [4]);
|
|
_fcdb ,_ =_ebd .Matrix ().Transform (_dcg [2],0);_fgd ,_ =_ebd .Matrix ().Transform (_dcg [5],0);_faeb ,_ :=_ebd .Matrix ().Translation ();_fcdb -=_faeb ;_fgd -=_faeb ;for _dbec ,_adeb :=range _dcg {if _dbec ==2||_dbec ==5{continue ;};if _adeb > 1.0{_fbgb :=_db .Min (_bdd -_fcdb ,_ffef -_fgd );
|
|
_bddd :=_db .Min (_fdaa -_fcdb ,_adg -_fgd );_fef :=_db .Max (_bdd +_fcdb ,_ffef +_fgd );_adcf :=_db .Max (_fdaa +_fcdb ,_adg +_fgd );_dfaa :=_fef -_fbgb ;_eaec :=_bddd -_adcf ;_acggc =_c .MakeArrayFromFloats ([]float64 {_fbgb ,_bddd ,_dfaa ,_eaec });break ;
|
|
};};_fcef :=_gc .NewRadialGradient (_bdd ,_fdaa ,_fcdb ,_ffef ,_adg ,_fgd );if _gde ,_feda :=_gcfa .Function [0].(*_df .PdfFunctionType2 );_feda {_fcef ,_cfeb =_fde (_fcef ,_gde ,_eece ,1.0,true );}else if _gcgd ,_affb :=_gcfa .Function [0].(*_df .PdfFunctionType3 );
|
|
_affb {_bef :=append ([]float64 {0},_gcgd .Bounds ...);_bef =append (_bef ,1.0);_fcef ,_cfeb =_gdag (_fcef ,_gcgd ,_eece ,_bef );};if _cfeb !=nil {return nil ,nil ,_cfeb ;};return _fcef ,_acggc ,nil ;};func (_aff renderer )renderContentStream (_cf _fc .Context ,_cca string ,_ef *_df .PdfPageResources )error {_ea ,_dge :=_fgb .NewContentStreamParser (_cca ).Parse ();
|
|
if _dge !=nil {return _dge ;};_fa :=_cf .TextState ();_fa .GlobalScale =_aff ._ee ;_bab :=map[string ]*_fc .TextFont {};_gcf :=_eda .NewFinder (&_eda .FinderOpts {Extensions :[]string {"\u002e\u0074\u0074\u0066","\u002e\u0074\u0074\u0063"}});var _acg *_fgb .ContentStreamOperation ;
|
|
_bdf :=_fgb .NewContentStreamProcessor (*_ea );_bdf .AddHandler (_fgb .HandlerConditionEnumAllOperands ,"",func (_bc *_fgb .ContentStreamOperation ,_gcg _fgb .GraphicsState ,_cfe *_df .PdfPageResources )error {_ac .Log .Debug ("\u0050\u0072\u006f\u0063\u0065\u0073\u0073\u0069\u006e\u0067\u0020\u0025\u0073",_bc .Operand );
|
|
switch _bc .Operand {case "\u0071":_cf .Push ();case "\u0051":_cf .Pop ();_fa =_cf .TextState ();case "\u0063\u006d":if len (_bc .Params )!=6{return _ge ;};_gda ,_gdb :=_c .GetNumbersAsFloat (_bc .Params );if _gdb !=nil {return _gdb ;};_baba :=_gg .NewMatrix (_gda [0],_gda [1],_gda [2],_gda [3],_gda [4],_gda [5]);
|
|
_ac .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",_baba );_cf .SetMatrix (_cf .Matrix ().Mult (_baba ));case "\u0077":if len (_bc .Params )!=1{return _ge ;
|
|
};_bcg ,_bbe :=_c .GetNumbersAsFloat (_bc .Params );if _bbe !=nil {return _bbe ;};_cf .SetLineWidth (_bcg [0]);case "\u004a":if len (_bc .Params )!=1{return _ge ;};_ecb ,_abb :=_c .GetIntVal (_bc .Params [0]);if !_abb {return _bdb ;};switch _ecb {case 0:_cf .SetLineCap (_fc .LineCapButt );
|
|
case 1:_cf .SetLineCap (_fc .LineCapRound );case 2:_cf .SetLineCap (_fc .LineCapSquare );default:_ac .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",_ecb );
|
|
return _ge ;};case "\u006a":if len (_bc .Params )!=1{return _ge ;};_ddcb ,_dec :=_c .GetIntVal (_bc .Params [0]);if !_dec {return _bdb ;};switch _ddcb {case 0:_cf .SetLineJoin (_fc .LineJoinBevel );case 1:_cf .SetLineJoin (_fc .LineJoinRound );case 2:_cf .SetLineJoin (_fc .LineJoinBevel );
|
|
default:_ac .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",_ddcb );return _ge ;};case "\u004d":if len (_bc .Params )!=1{return _ge ;};_gee ,_eec :=_c .GetNumbersAsFloat (_bc .Params );
|
|
if _eec !=nil {return _eec ;};_ =_gee ;_ac .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 (_bc .Params )!=2{return _ge ;};_cg ,_ag :=_c .GetArray (_bc .Params [0]);
|
|
if !_ag {return _bdb ;};_gge ,_ag :=_c .GetIntVal (_bc .Params [1]);if !_ag {_ ,_ddce :=_c .GetFloatVal (_bc .Params [1]);if !_ddce {return _bdb ;};};_aed ,_ecg :=_c .GetNumbersAsFloat (_cg .Elements ());if _ecg !=nil {return _ecg ;};_cf .SetDash (_aed ...);
|
|
_ =_gge ;_ac .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":_ac .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":_ac .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 (_bc .Params )!=1{return _ge ;
|
|
};_cfee ,_fcc :=_c .GetName (_bc .Params [0]);if !_fcc {return _bdb ;};if _cfee ==nil {return _ge ;};_fcca ,_fcc :=_cfe .GetExtGState (*_cfee );if !_fcc {_ac .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",*_cfee );
|
|
return _fg .New ("\u0072e\u0073o\u0075\u0072\u0063\u0065\u0020n\u006f\u0074 \u0066\u006f\u0075\u006e\u0064");};_afg ,_fcc :=_c .GetDict (_fcca );if !_fcc {_ac .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 _bdb ;};_ac .Log .Debug ("G\u0053\u0020\u0064\u0069\u0063\u0074\u003a\u0020\u0025\u0073",_afg .String ());case "\u006d":if len (_bc .Params )!=2{_ac .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",_ge );
|
|
return nil ;};_dfc ,_acb :=_c .GetNumbersAsFloat (_bc .Params );if _acb !=nil {return _acb ;};_ac .Log .Debug ("M\u006f\u0076\u0065\u0020\u0074\u006f\u003a\u0020\u0025\u0076",_dfc );_cf .NewSubPath ();_cf .MoveTo (_dfc [0],_dfc [1]);case "\u006c":if len (_bc .Params )!=2{_ac .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",_ge );
|
|
return nil ;};_bed ,_eae :=_c .GetNumbersAsFloat (_bc .Params );if _eae !=nil {return _eae ;};_cf .LineTo (_bed [0],_bed [1]);case "\u0063":if len (_bc .Params )!=6{return _ge ;};_edd ,_fd :=_c .GetNumbersAsFloat (_bc .Params );if _fd !=nil {return _fd ;
|
|
};_ac .Log .Debug ("\u0043u\u0062\u0069\u0063\u0020\u0062\u0065\u007a\u0069\u0065\u0072\u0020p\u0061\u0072\u0061\u006d\u0073\u003a\u0020\u0025\u002b\u0076",_edd );_cf .CubicTo (_edd [0],_edd [1],_edd [2],_edd [3],_edd [4],_edd [5]);case "\u0076","\u0079":if len (_bc .Params )!=4{return _ge ;
|
|
};_eg ,_agg :=_c .GetNumbersAsFloat (_bc .Params );if _agg !=nil {return _agg ;};_ac .Log .Debug ("\u0043u\u0062\u0069\u0063\u0020\u0062\u0065\u007a\u0069\u0065\u0072\u0020p\u0061\u0072\u0061\u006d\u0073\u003a\u0020\u0025\u002b\u0076",_eg );_cf .QuadraticTo (_eg [0],_eg [1],_eg [2],_eg [3]);
|
|
case "\u0068":_cf .ClosePath ();_cf .NewSubPath ();case "\u0072\u0065":if len (_bc .Params )!=4{return _ge ;};_cb ,_fae :=_c .GetNumbersAsFloat (_bc .Params );if _fae !=nil {return _fae ;};_cf .DrawRectangle (_cb [0],_cb [1],_cb [2],_cb [3]);_cf .NewSubPath ();
|
|
case "\u0053":_agga ,_ffd :=_gcg .ColorspaceStroking .ColorToRGB (_gcg .ColorStroking );if _ffd !=nil {_ac .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",_ffd );
|
|
return _ffd ;};_ddd ,_fec :=_agga .(*_df .PdfColorDeviceRGB );if !_fec {_ac .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _ffd ;};_cf .SetRGBA (_ddd .R (),_ddd .G (),_ddd .B (),1);
|
|
_cf .Stroke ();case "\u0073":_ddb ,_cfc :=_gcg .ColorspaceStroking .ColorToRGB (_gcg .ColorStroking );if _cfc !=nil {_ac .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_cfc );
|
|
return _cfc ;};_bac ,_bea :=_ddb .(*_df .PdfColorDeviceRGB );if !_bea {_ac .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _cfc ;};_cf .ClosePath ();_cf .NewSubPath ();
|
|
_cf .SetRGBA (_bac .R (),_bac .G (),_bac .B (),1);_cf .Stroke ();case "\u0066","\u0046":_cgc ,_ca :=_gcg .ColorspaceNonStroking .ColorToRGB (_gcg .ColorNonStroking );if _ca !=nil {_ac .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",_ca );
|
|
return _ca ;};switch _gfa :=_cgc .(type ){case *_df .PdfColorDeviceRGB :_cf .SetRGBA (_gfa .R (),_gfa .G (),_gfa .B (),1);_cf .SetFillRule (_fc .FillRuleWinding );_cf .Fill ();case *_df .PdfColorPattern :_cf .Fill ();};_ac .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");
|
|
case "\u0066\u002a":_cfa ,_acc :=_gcg .ColorspaceNonStroking .ColorToRGB (_gcg .ColorNonStroking );if _acc !=nil {_ac .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",_acc );
|
|
return _acc ;};_ffdc ,_fcd :=_cfa .(*_df .PdfColorDeviceRGB );if !_fcd {_ac .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _acc ;};_cf .SetRGBA (_ffdc .R (),_ffdc .G (),_ffdc .B (),1);
|
|
_cf .SetFillRule (_fc .FillRuleEvenOdd );_cf .Fill ();case "\u0042":_bbc ,_bde :=_gcg .ColorspaceNonStroking .ColorToRGB (_gcg .ColorNonStroking );if _bde !=nil {_ac .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",_bde );
|
|
return _bde ;};switch _dfcg :=_bbc .(type ){case *_df .PdfColorDeviceRGB :_cf .SetRGBA (_dfcg .R (),_dfcg .G (),_dfcg .B (),1);_cf .SetFillRule (_fc .FillRuleWinding );_cf .FillPreserve ();_bbc ,_bde =_gcg .ColorspaceStroking .ColorToRGB (_gcg .ColorStroking );
|
|
if _bde !=nil {_ac .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",_bde );return _bde ;};if _bec ,_efe :=_bbc .(*_df .PdfColorDeviceRGB );
|
|
_efe {_cf .SetRGBA (_bec .R (),_bec .G (),_bec .B (),1);_cf .Stroke ();};case *_df .PdfColorPattern :_cf .SetFillRule (_fc .FillRuleWinding );_cf .Fill ();_cf .StrokePattern ();};case "\u0042\u002a":_dcc ,_fgba :=_gcg .ColorspaceNonStroking .ColorToRGB (_gcg .ColorNonStroking );
|
|
if _fgba !=nil {_ac .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",_fgba );return _fgba ;};switch _gbc :=_dcc .(type ){case *_df .PdfColorDeviceRGB :_cf .SetRGBA (_gbc .R (),_gbc .G (),_gbc .B (),1);
|
|
_cf .SetFillRule (_fc .FillRuleEvenOdd );_cf .FillPreserve ();_dcc ,_fgba =_gcg .ColorspaceStroking .ColorToRGB (_gcg .ColorStroking );if _fgba !=nil {_ac .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",_fgba );
|
|
return _fgba ;};if _ggb ,_fed :=_dcc .(*_df .PdfColorDeviceRGB );_fed {_cf .SetRGBA (_ggb .R (),_ggb .G (),_ggb .B (),1);_cf .Stroke ();};case *_df .PdfColorPattern :_cf .SetFillRule (_fc .FillRuleEvenOdd );_cf .Fill ();_cf .StrokePattern ();};case "\u0062":_cf .ClosePath ();
|
|
_gfg ,_aedc :=_gcg .ColorspaceNonStroking .ColorToRGB (_gcg .ColorNonStroking );if _aedc !=nil {_ac .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",_aedc );
|
|
return _aedc ;};switch _bdbe :=_gfg .(type ){case *_df .PdfColorDeviceRGB :_cf .SetRGBA (_bdbe .R (),_bdbe .G (),_bdbe .B (),1);_cf .NewSubPath ();_cf .SetFillRule (_fc .FillRuleWinding );_cf .FillPreserve ();_gfg ,_aedc =_gcg .ColorspaceStroking .ColorToRGB (_gcg .ColorStroking );
|
|
if _aedc !=nil {_ac .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",_aedc );return _aedc ;};if _ddf ,_eba :=_gfg .(*_df .PdfColorDeviceRGB );
|
|
_eba {_cf .SetRGBA (_ddf .R (),_ddf .G (),_ddf .B (),1);_cf .Stroke ();};case *_df .PdfColorPattern :_cf .NewSubPath ();_cf .SetFillRule (_fc .FillRuleWinding );_cf .Fill ();_cf .StrokePattern ();};case "\u0062\u002a":_cf .ClosePath ();_aca ,_edc :=_gcg .ColorspaceNonStroking .ColorToRGB (_gcg .ColorNonStroking );
|
|
if _edc !=nil {_ac .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",_edc );return _edc ;};switch _bgbd :=_aca .(type ){case *_df .PdfColorDeviceRGB :_cf .SetRGBA (_bgbd .R (),_bgbd .G (),_bgbd .B (),1);
|
|
_cf .NewSubPath ();_cf .SetFillRule (_fc .FillRuleEvenOdd );_cf .FillPreserve ();_aca ,_edc =_gcg .ColorspaceStroking .ColorToRGB (_gcg .ColorStroking );if _edc !=nil {_ac .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",_edc );
|
|
return _edc ;};if _feb ,_cad :=_aca .(*_df .PdfColorDeviceRGB );_cad {_cf .SetRGBA (_feb .R (),_feb .G (),_feb .B (),1);_cf .Stroke ();};case *_df .PdfColorPattern :_cf .NewSubPath ();_cf .SetFillRule (_fc .FillRuleEvenOdd );_cf .Fill ();_cf .StrokePattern ();
|
|
};case "\u006e":_cf .ClearPath ();case "\u0057":_cf .SetFillRule (_fc .FillRuleWinding );_cf .ClipPreserve ();case "\u0057\u002a":_cf .SetFillRule (_fc .FillRuleEvenOdd );_cf .ClipPreserve ();case "\u0072\u0067":_dbe ,_fbb :=_gcg .ColorNonStroking .(*_df .PdfColorDeviceRGB );
|
|
if !_fbb {_ac .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",_gcg .ColorNonStroking );return nil ;};_cf .SetFillRGBA (_dbe .R (),_dbe .G (),_dbe .B (),1);
|
|
case "\u0052\u0047":_ega ,_ggcb :=_gcg .ColorStroking .(*_df .PdfColorDeviceRGB );if !_ggcb {_ac .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",_gcg .ColorStroking );
|
|
return nil ;};_cf .SetStrokeRGBA (_ega .R (),_ega .G (),_ega .B (),1);case "\u006b":_fff ,_fac :=_gcg .ColorNonStroking .(*_df .PdfColorDeviceCMYK );if !_fac {_ac .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",_gcg .ColorNonStroking );
|
|
return nil ;};_acag ,_cfg :=_gcg .ColorspaceNonStroking .ColorToRGB (_fff );if _cfg !=nil {_ac .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",_gcg .ColorNonStroking );
|
|
return nil ;};_cgf ,_fac :=_acag .(*_df .PdfColorDeviceRGB );if !_fac {_ac .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",_acag );return nil ;
|
|
};_cf .SetFillRGBA (_cgf .R (),_cgf .G (),_cgf .B (),1);case "\u004b":_cdg ,_dff :=_gcg .ColorStroking .(*_df .PdfColorDeviceCMYK );if !_dff {_ac .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",_gcg .ColorStroking );
|
|
return nil ;};_aag ,_gfb :=_gcg .ColorspaceStroking .ColorToRGB (_cdg );if _gfb !=nil {_ac .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",_gcg .ColorStroking );
|
|
return nil ;};_agd ,_dff :=_aag .(*_df .PdfColorDeviceRGB );if !_dff {_ac .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",_aag );return nil ;
|
|
};_cf .SetStrokeRGBA (_agd .R (),_agd .G (),_agd .B (),1);case "\u0067":_ccf ,_dde :=_gcg .ColorNonStroking .(*_df .PdfColorDeviceGray );if !_dde {_ac .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",_gcg .ColorNonStroking );
|
|
return nil ;};_fbg ,_age :=_gcg .ColorspaceNonStroking .ColorToRGB (_ccf );if _age !=nil {_ac .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",_gcg .ColorNonStroking );
|
|
return nil ;};_ead ,_dde :=_fbg .(*_df .PdfColorDeviceRGB );if !_dde {_ac .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 ;
|
|
};_cf .SetFillRGBA (_ead .R (),_ead .G (),_ead .B (),1);case "\u0047":_eeg ,_gff :=_gcg .ColorStroking .(*_df .PdfColorDeviceGray );if !_gff {_ac .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",_gcg .ColorStroking );
|
|
return nil ;};_cae ,_ecf :=_gcg .ColorspaceStroking .ColorToRGB (_eeg );if _ecf !=nil {_ac .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",_gcg .ColorStroking );
|
|
return nil ;};_dac ,_gff :=_cae .(*_df .PdfColorDeviceRGB );if !_gff {_ac .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",_cae );return nil ;
|
|
};_cf .SetStrokeRGBA (_dac .R (),_dac .G (),_dac .B (),1);case "\u0063\u0073":if len (_bc .Params )> 0{if _ged ,_ace :=_c .GetName (_bc .Params [0]);_ace &&_ged .String ()=="\u0050a\u0074\u0074\u0065\u0072\u006e"{break ;};};_adc ,_cadg :=_gcg .ColorspaceNonStroking .ColorToRGB (_gcg .ColorNonStroking );
|
|
if _cadg !=nil {_ac .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",_gcg .ColorNonStroking );return nil ;};_gdaf ,_aeda :=_adc .(*_df .PdfColorDeviceRGB );
|
|
if !_aeda {_ac .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",_adc );return nil ;};_cf .SetFillRGBA (_gdaf .R (),_gdaf .G (),_gdaf .B (),1);
|
|
case "\u0073\u0063":_ggbb ,_cge :=_gcg .ColorspaceNonStroking .ColorToRGB (_gcg .ColorNonStroking );if _cge !=nil {_ac .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",_gcg .ColorNonStroking );
|
|
return nil ;};_fda ,_ede :=_ggbb .(*_df .PdfColorDeviceRGB );if !_ede {_ac .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",_ggbb );return nil ;
|
|
};_cf .SetFillRGBA (_fda .R (),_fda .G (),_fda .B (),1);case "\u0073\u0063\u006e":if len (_bc .Params )> 0&&len (_acg .Params )> 0{if _afc ,_bbeg :=_c .GetName (_acg .Params [0]);_bbeg &&_afc .String ()=="\u0050a\u0074\u0074\u0065\u0072\u006e"{if _ceg ,_dgd :=_c .GetName (_bc .Params [0]);
|
|
_dgd {_bf ,_agdb :=_aff .processGradient (_cf ,_bc ,_cfe ,_ceg );if _agdb !=nil {_ac .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0077\u0068\u0065\u006e\u0020\u0070\u0072o\u0063\u0065\u0073\u0073\u0069\u006eg\u0020\u0067\u0072\u0061\u0064\u0069\u0065\u006e\u0074\u0020\u0064\u0061\u0074a\u003a\u0020\u0025\u0076",_agdb );
|
|
break ;};if _bf ==nil {_ac .Log .Debug ("\u0055\u006ek\u006e\u006f\u0077n\u0020\u0067\u0072\u0061\u0064\u0069\u0065\u006e\u0074");break ;};_cf .SetFillStyle (_bf );_cf .SetStrokeStyle (_bf );break ;};};};_fdaf ,_bba :=_gcg .ColorspaceNonStroking .ColorToRGB (_gcg .ColorNonStroking );
|
|
if _bba !=nil {_ac .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",_gcg .ColorNonStroking );return nil ;};_aga ,_fbf :=_fdaf .(*_df .PdfColorDeviceRGB );
|
|
if !_fbf {_ac .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",_fdaf );return nil ;};_cf .SetFillRGBA (_aga .R (),_aga .G (),_aga .B (),1);
|
|
case "\u0043\u0053":if len (_bc .Params )> 0{if _gad ,_fbe :=_c .GetName (_bc .Params [0]);_fbe &&_gad .String ()=="\u0050a\u0074\u0074\u0065\u0072\u006e"{break ;};};_bace ,_bacb :=_gcg .ColorspaceStroking .ColorToRGB (_gcg .ColorStroking );if _bacb !=nil {_ac .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",_gcg .ColorStroking );
|
|
return nil ;};_baa ,_edec :=_bace .(*_df .PdfColorDeviceRGB );if !_edec {_ac .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",_bace );return nil ;
|
|
};_cf .SetStrokeRGBA (_baa .R (),_baa .G (),_baa .B (),1);case "\u0053\u0043":_faf ,_dgg :=_gcg .ColorspaceStroking .ColorToRGB (_gcg .ColorStroking );if _dgg !=nil {_ac .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",_gcg .ColorStroking );
|
|
return nil ;};_fecf ,_dcb :=_faf .(*_df .PdfColorDeviceRGB );if !_dcb {_ac .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",_faf );return nil ;
|
|
};_cf .SetStrokeRGBA (_fecf .R (),_fecf .G (),_fecf .B (),1);case "\u0053\u0043\u004e":if len (_bc .Params )> 0&&len (_acg .Params )> 0{if _bbf ,_dbeb :=_c .GetName (_acg .Params [0]);_dbeb &&_bbf .String ()=="\u0050a\u0074\u0074\u0065\u0072\u006e"{if _gfgc ,_dgf :=_c .GetName (_bc .Params [0]);
|
|
_dgf {_dee ,_fdd :=_aff .processGradient (_cf ,_bc ,_cfe ,_gfgc );if _fdd !=nil {_ac .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0077\u0068\u0065\u006e\u0020\u0070\u0072o\u0063\u0065\u0073\u0073\u0069\u006eg\u0020\u0067\u0072\u0061\u0064\u0069\u0065\u006e\u0074\u0020\u0064\u0061\u0074a\u003a\u0020\u0025\u0076",_fdd );
|
|
break ;};if _dee ==nil {_ac .Log .Debug ("\u0055\u006ek\u006e\u006f\u0077n\u0020\u0067\u0072\u0061\u0064\u0069\u0065\u006e\u0074");break ;};_cf .SetFillStyle (_dee );_cf .SetStrokeStyle (_dee );break ;};};};_bdec ,_ecgf :=_gcg .ColorspaceStroking .ColorToRGB (_gcg .ColorStroking );
|
|
if _ecgf !=nil {_ac .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",_gcg .ColorStroking );return nil ;};_cba ,_gbgc :=_bdec .(*_df .PdfColorDeviceRGB );
|
|
if !_gbgc {_ac .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",_bdec );return nil ;};_cf .SetStrokeRGBA (_cba .R (),_cba .G (),_cba .B (),1);
|
|
case "\u0073\u0068":if len (_bc .Params )!=1{_ac .Log .Debug ("\u0049n\u0076\u0061\u006c\u0069\u0064\u0020\u0073\u0068\u0020\u0070\u0061r\u0061\u006d\u0073\u0020\u0066\u006f\u0072\u006d\u0061\u0074");break ;};_bgf ,_gagg :=_c .GetName (_bc .Params [0]);
|
|
if !_gagg {_ac .Log .Debug ("F\u0061\u0069\u006c\u0065\u0064\u0020g\u0065\u0074\u0074\u0069\u006e\u0067\u0020\u0073\u0068a\u0064\u0069\u006eg\u0020n\u0061\u006d\u0065");break ;};_dgfg ,_gagg :=_cfe .GetShadingByName (*_bgf );if !_gagg {_ac .Log .Debug ("F\u0061\u0069\u006c\u0065\u0064\u0020g\u0065\u0074\u0074\u0069\u006e\u0067\u0020\u0073\u0068a\u0064\u0069\u006eg\u0020d\u0061\u0074\u0061");
|
|
break ;};_bbeb ,_dad ,_dda :=_aff .processShading (_cf ,_dgfg );if _dda !=nil {_ac .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0077\u0068\u0065\u006e\u0020\u0070\u0072\u006f\u0063\u0065\u0073\u0073\u0069\u006e\u0067\u0020\u0073\u0068a\u0064\u0069\u006e\u0067\u0020d\u0061\u0074a\u003a\u0020\u0025\u0076",_dda );
|
|
break ;};if _bbeb ==nil {_ac .Log .Debug ("\u0055\u006ek\u006e\u006f\u0077n\u0020\u0067\u0072\u0061\u0064\u0069\u0065\u006e\u0074");break ;};_fgc ,_dda :=_dad .ToFloat64Array ();if _dda !=nil {_ac .Log .Debug ("\u0045\u0072r\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069\u006e\u0067\u0020\u0063\u006f\u006f\u0072\u0064\u0069\u006e\u0061\u0074\u0065\u0073: \u0025\u0076",_dda );
|
|
break ;};_cf .DrawRectangle (_fgc [0],_fgc [1],_fgc [2],_fgc [3]);_cf .NewSubPath ();_cf .SetFillStyle (_bbeb );_cf .SetStrokeStyle (_bbeb );_cf .Fill ();case "\u0044\u006f":if len (_bc .Params )!=1{return _ge ;};_bda ,_gdf :=_c .GetName (_bc .Params [0]);
|
|
if !_gdf {return _bdb ;};_ ,_bcc :=_cfe .GetXObjectByName (*_bda );switch _bcc {case _df .XObjectTypeImage :_ac .Log .Debug ("\u0058\u004f\u0062\u006a\u0065\u0063\u0074\u0020\u0069\u006d\u0061\u0067e\u003a\u0020\u0025\u0073",_bda .String ());_bag ,_fgbc :=_cfe .GetXObjectImageByName (*_bda );
|
|
if _fgbc !=nil {return _fgbc ;};_dfce ,_fgbc :=_bag .ToImage ();if _fgbc !=nil {return _fgbc ;};if _fffd :=_bag .ColorSpace ;_fffd !=nil {var _eea bool ;switch _fffd .(type ){case *_df .PdfColorspaceSpecialIndexed :_eea =true ;};if _eea {if _fdde ,_ddcf :=_fffd .ImageToRGB (*_dfce );
|
|
_ddcf !=nil {_ac .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 {_dfce =&_fdde ;};};};_gaa :=_cf .FillPattern ().ColorAt (0,0);var _fdg _ed .Image ;if _bag .Mask !=nil {if _fdg ,_fgbc =_agdd (_bag .Mask ,_gaa );_fgbc !=nil {_ac .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 _bag .SMask !=nil {if _fdg ,_fgbc =_gac (_bag .SMask ,_gaa );_fgbc !=nil {_ac .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 _geg _ed .Image ;if _bacd ,_ :=_c .GetBoolVal (_bag .ImageMask );_bacd {_geg =_dfb (_dfce ,_gaa );}else {_geg ,_fgbc =_dfce .ToGoImage ();if _fgbc !=nil {return _fgbc ;};};if _fdg !=nil {_geg =_ebce (_geg ,_fdg );};_cbag :=_geg .Bounds ();_cf .Push ();
|
|
_cf .Scale (1.0/float64 (_cbag .Dx ()),-1.0/float64 (_cbag .Dy ()));_cf .DrawImageAnchored (_geg ,0,0,0,1);_cf .Pop ();case _df .XObjectTypeForm :_ac .Log .Debug ("\u0058\u004fb\u006a\u0065\u0063t\u0020\u0066\u006f\u0072\u006d\u003a\u0020\u0025\u0073",_bda .String ());
|
|
_geb ,_eeb :=_cfe .GetXObjectFormByName (*_bda );if _eeb !=nil {return _eeb ;};_badb ,_eeb :=_geb .GetContentStream ();if _eeb !=nil {return _eeb ;};_fccc :=_geb .Resources ;if _fccc ==nil {_fccc =_cfe ;};_cf .Push ();if _geb .Matrix !=nil {_fgf ,_bgd :=_c .GetArray (_geb .Matrix );
|
|
if !_bgd {return _bdb ;};_gegf ,_ffb :=_c .GetNumbersAsFloat (_fgf .Elements ());if _ffb !=nil {return _ffb ;};if len (_gegf )!=6{return _ge ;};_ddbc :=_gg .NewMatrix (_gegf [0],_gegf [1],_gegf [2],_gegf [3],_gegf [4],_gegf [5]);_cf .SetMatrix (_cf .Matrix ().Mult (_ddbc ));
|
|
};if _geb .BBox !=nil {_egaf ,_ade :=_c .GetArray (_geb .BBox );if !_ade {return _bdb ;};_efd ,_cab :=_c .GetNumbersAsFloat (_egaf .Elements ());if _cab !=nil {return _cab ;};if len (_efd )!=4{_ac .Log .Debug ("\u004c\u0065\u006e\u0020\u003d\u0020\u0025\u0064",len (_efd ));
|
|
return _ge ;};_cf .DrawRectangle (_efd [0],_efd [1],_efd [2]-_efd [0],_efd [3]-_efd [1]);_cf .SetRGBA (1,0,0,1);_cf .Clip ();}else {_ac .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");
|
|
};_eeb =_aff .renderContentStream (_cf ,string (_badb ),_fccc );if _eeb !=nil {return _eeb ;};_cf .Pop ();};case "\u0042\u0049":if len (_bc .Params )!=1{return _ge ;};_bgda ,_fab :=_bc .Params [0].(*_fgb .ContentStreamInlineImage );if !_fab {return nil ;
|
|
};_eaa ,_eeed :=_bgda .ToImage (_cfe );if _eeed !=nil {return _eeed ;};_gbgf ,_eeed :=_eaa .ToGoImage ();if _eeed !=nil {return _eeed ;};_fcccg :=_gbgf .Bounds ();_cf .Push ();_cf .Scale (1.0/float64 (_fcccg .Dx ()),-1.0/float64 (_fcccg .Dy ()));_cf .DrawImageAnchored (_gbgf ,0,0,0,1);
|
|
_cf .Pop ();case "\u0042\u0054":_fa .Reset ();case "\u0045\u0054":_fa .Reset ();case "\u0054\u0072":if len (_bc .Params )!=1{return _ge ;};_bcf ,_edab :=_c .GetNumberAsFloat (_bc .Params [0]);if _edab !=nil {return _edab ;};_fa .Tr =_fc .TextRenderingMode (_bcf );
|
|
case "\u0054\u004c":if len (_bc .Params )!=1{return _ge ;};_fag ,_egd :=_c .GetNumberAsFloat (_bc .Params [0]);if _egd !=nil {return _egd ;};_fa .Tl =_fag ;case "\u0054\u0063":if len (_bc .Params )!=1{return _ge ;};_bfc ,_deea :=_c .GetNumberAsFloat (_bc .Params [0]);
|
|
if _deea !=nil {return _deea ;};_ac .Log .Debug ("\u0054\u0063\u003a\u0020\u0025\u0076",_bfc );_fa .Tc =_bfc ;case "\u0054\u0077":if len (_bc .Params )!=1{return _ge ;};_efc ,_fbbb :=_c .GetNumberAsFloat (_bc .Params [0]);if _fbbb !=nil {return _fbbb ;
|
|
};_ac .Log .Debug ("\u0054\u0077\u003a\u0020\u0025\u0076",_efc );_fa .Tw =_efc ;case "\u0054\u007a":if len (_bc .Params )!=1{return _ge ;};_eca ,_ddg :=_c .GetNumberAsFloat (_bc .Params [0]);if _ddg !=nil {return _ddg ;};_fa .Th =_eca ;case "\u0054\u0073":if len (_bc .Params )!=1{return _ge ;
|
|
};_abc ,_gfc :=_c .GetNumberAsFloat (_bc .Params [0]);if _gfc !=nil {return _gfc ;};_fa .Ts =_abc ;case "\u0054\u0064":if len (_bc .Params )!=2{return _ge ;};_eade ,_dfa :=_c .GetNumbersAsFloat (_bc .Params );if _dfa !=nil {return _dfa ;};_ac .Log .Debug ("\u0054\u0064\u003a\u0020\u0025\u0076",_eade );
|
|
_fa .ProcTd (_eade [0],_eade [1]);case "\u0054\u0044":if len (_bc .Params )!=2{return _ge ;};_baaa ,_fbc :=_c .GetNumbersAsFloat (_bc .Params );if _fbc !=nil {return _fbc ;};_ac .Log .Debug ("\u0054\u0044\u003a\u0020\u0025\u0076",_baaa );_fa .ProcTD (_baaa [0],_baaa [1]);
|
|
case "\u0054\u002a":_fa .ProcTStar ();case "\u0054\u006d":if len (_bc .Params )!=6{return _ge ;};_gfgg ,_eadb :=_c .GetNumbersAsFloat (_bc .Params );if _eadb !=nil {return _eadb ;};_ac .Log .Debug ("\u0054\u0065x\u0074\u0020\u006da\u0074\u0072\u0069\u0078\u003a\u0020\u0025\u002b\u0076",_gfgg );
|
|
_fa .ProcTm (_gfgg [0],_gfgg [1],_gfgg [2],_gfgg [3],_gfgg [4],_gfgg [5]);case "\u0027":if len (_bc .Params )!=1{return _ge ;};_ccg ,_geeg :=_c .GetStringBytes (_bc .Params [0]);if !_geeg {return _bdb ;};_ac .Log .Debug ("\u0027\u0020\u0073t\u0072\u0069\u006e\u0067\u003a\u0020\u0025\u0073",string (_ccg ));
|
|
_fa .ProcQ (_ccg ,_cf );case "\u0022":if len (_bc .Params )!=3{return _ge ;};_ffe ,_dab :=_c .GetNumberAsFloat (_bc .Params [0]);if _dab !=nil {return _dab ;};_gbe ,_dab :=_c .GetNumberAsFloat (_bc .Params [1]);if _dab !=nil {return _dab ;};_adcd ,_cga :=_c .GetStringBytes (_bc .Params [2]);
|
|
if !_cga {return _bdb ;};_fa .ProcDQ (_adcd ,_ffe ,_gbe ,_cf );case "\u0054\u006a":if len (_bc .Params )!=1{return _ge ;};_dag ,_agef :=_c .GetStringBytes (_bc .Params [0]);if !_agef {return _bdb ;};_ac .Log .Debug ("\u0054j\u0020s\u0074\u0072\u0069\u006e\u0067\u003a\u0020\u0060\u0025\u0073\u0060",string (_dag ));
|
|
_fa .ProcTj (_dag ,_cf );case "\u0054\u004a":if len (_bc .Params )!=1{return _ge ;};_cgb ,_bbd :=_c .GetArray (_bc .Params [0]);if !_bbd {_ac .Log .Debug ("\u0054\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_cgb );return _bdb ;};_ac .Log .Debug ("\u0054\u004a\u0020\u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u002b\u0076",_cgb );
|
|
for _ ,_fca :=range _cgb .Elements (){switch _ebaf :=_fca .(type ){case *_c .PdfObjectString :if _ebaf !=nil {_fa .ProcTj (_ebaf .Bytes (),_cf );};case *_c .PdfObjectFloat ,*_c .PdfObjectInteger :_cee ,_daga :=_c .GetNumberAsFloat (_ebaf );if _daga ==nil {_fa .Translate (-_cee *0.001*_fa .Tf .Size *_fa .Th /100.0,0);
|
|
};};};case "\u0054\u0066":if len (_bc .Params )!=2{return _ge ;};_ac .Log .Debug ("\u0025\u0023\u0076",_bc .Params );_dba ,_eebc :=_c .GetName (_bc .Params [0]);if !_eebc ||_dba ==nil {_ac .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",_bc .Params [0]);
|
|
return _bdb ;};_ac .Log .Debug ("\u0046\u006f\u006e\u0074\u0020\u006e\u0061\u006d\u0065\u003a\u0020\u0025\u0073",_dba .String ());_cdgc ,_bbcc :=_c .GetNumberAsFloat (_bc .Params [1]);if _bbcc !=nil {_ac .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",_bc .Params [1]);
|
|
return _bdb ;};_ac .Log .Debug ("\u0046\u006f\u006e\u0074\u0020\u0073\u0069\u007a\u0065\u003a\u0020\u0025\u0076",_cdgc );_dgce ,_bga :=_cfe .GetFontByName (*_dba );if !_bga {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0046\u006f\u006e\u0074\u0020\u0025s\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064",_dba .String ());
|
|
return _fg .New ("\u0066\u006f\u006e\u0074\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};_ac .Log .Debug ("\u0046\u006f\u006e\u0074\u003a\u0020\u0025\u0054",_dgce );_aaga ,_eebc :=_c .GetDict (_dgce );if !_eebc {_ac .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 _bdb ;};_adb ,_bbcc :=_df .NewPdfFontFromPdfObject (_aaga );if _bbcc !=nil {_ac .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 _bbcc ;};_gcga :=_adb .BaseFont ();if _gcga ==""{_gcga =_dba .String ();};_gafa ,_eebc :=_bab [_gcga ];if !_eebc {_gafa ,_bbcc =_fc .NewTextFont (_adb ,_cdgc );if _bbcc !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bbcc );
|
|
};};if _gafa ==nil {if len (_gcga )> 7&&_gcga [6]=='+'{_gcga =_gcga [7:];};_aee :=[]string {_gcga ,"\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 _ ,_cce :=range _aee {_ac .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",_cce );if _gafa ,_eebc =_bab [_cce ];
|
|
_eebc {break ;};_dce :=_gcf .Match (_cce );if _dce ==nil {_ac .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",_cce );continue ;};_gafa ,_bbcc =_fc .NewTextFontFromPath (_dce .Filename ,_cdgc );
|
|
if _bbcc !=nil {_ac .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",_dce .Filename );continue ;};_ac .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",_gcga ,_dce .Name ,_dce .Filename );
|
|
_bab [_cce ]=_gafa ;break ;};};if _gafa ==nil {_ac .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 _fg .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");};_fa .ProcTf (_gafa .WithSize (_cdgc ,_adb ));case "\u0042\u004d\u0043","\u0042\u0044\u0043":case "\u0045\u004d\u0043":default:_ac .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",_bc .Operand );
|
|
};_acg =_bc ;return nil ;});_dge =_bdf .Process (_ef );if _dge !=nil {return _dge ;};return nil ;};
|
|
|
|
// NewImageDevice returns a new image device.
|
|
func NewImageDevice ()*ImageDevice {const _da ="r\u0065\u006e\u0064\u0065r.\u004ee\u0077\u0049\u006d\u0061\u0067e\u0044\u0065\u0076\u0069\u0063\u0065";_ab .TrackUse (_da );return &ImageDevice {};};func _eecb (_agbb string ,_adbf _ed .Image )error {_gef ,_bae :=_e .Create (_agbb );
|
|
if _bae !=nil {return _bae ;};defer _gef .Close ();return _b .Encode (_gef ,_adbf );};func _dccg (_eff *_df .Image ,_aaa _ae .Color )_ed .Image {_fbbg ,_bfa :=int (_eff .Width ),int (_eff .Height );_gfcg :=_ed .NewRGBA (_ed .Rect (0,0,_fbbg ,_bfa ));for _dcd :=0;
|
|
_dcd < _bfa ;_dcd ++{for _gec :=0;_gec < _fbbg ;_gec ++{_decc ,_ffa :=_eff .ColorAt (_gec ,_dcd );if _ffa !=nil {_ac .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",_gec ,_dcd );
|
|
continue ;};_dbc ,_egg ,_ebe ,_ :=_decc .RGBA ();var _bcb _ae .Color ;if _dbc +_egg +_ebe ==0{_bcb =_ae .Transparent ;}else {_bcb =_aaa ;};_gfcg .Set (_gec ,_dcd ,_bcb );};};return _gfcg ;};func _ebc (_ddeb string ,_gae _ed .Image ,_fcde int )error {_bbaf ,_gdcc :=_e .Create (_ddeb );
|
|
if _gdcc !=nil {return _gdcc ;};defer _bbaf .Close ();return _dbf .Encode (_bbaf ,_gae ,&_dbf .Options {Quality :_fcde });};func _agdd (_beae _c .PdfObject ,_caef _ae .Color )(_ed .Image ,error ){_bge ,_faa :=_c .GetStream (_beae );if !_faa {return nil ,nil ;
|
|
};_dbad ,_fage :=_df .NewXObjectImageFromStream (_bge );if _fage !=nil {return nil ,_fage ;};_fgcf ,_fage :=_dbad .ToImage ();if _fage !=nil {return nil ,_fage ;};return _dfb (_fgcf ,_caef ),nil ;};const (ShadingTypeFunctionBased PdfShadingType =1;ShadingTypeAxial PdfShadingType =2;
|
|
ShadingTypeRadial PdfShadingType =3;ShadingTypeFreeForm PdfShadingType =4;ShadingTypeLatticeForm PdfShadingType =5;ShadingTypeCoons PdfShadingType =6;ShadingTypeTensorProduct PdfShadingType =7;);type renderer struct{_ee float64 };func (_bacc renderer )processShading (_fagf _fc .Context ,_edad *_df .PdfShading )(_fc .Gradient ,*_c .PdfObjectArray ,error ){_acgg :=int64 (*_edad .ShadingType );
|
|
if _acgg ==int64 (ShadingTypeAxial ){return _bacc .processLinearShading (_fagf ,_edad );}else if _acgg ==int64 (ShadingTypeRadial ){return _bacc .processRadialShading (_fagf ,_edad );}else {_ac .Log .Debug (_gb .Sprintf ("\u0050r\u006f\u0063e\u0073\u0073\u0069n\u0067\u0020\u0067\u0072\u0061\u0064\u0069e\u006e\u0074\u0020\u0074\u0079\u0070e\u0020\u0025\u0064\u0020\u006e\u006f\u0074\u0020\u0079\u0065\u0074 \u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064",_acgg ));
|
|
};return nil ,nil ,nil ;};
|
|
|
|
// Render converts the specified PDF page into an image and returns the result.
|
|
func (_fb *ImageDevice )Render (page *_df .PdfPage )(_ed .Image ,error ){_cc ,_aeg :=page .GetMediaBox ();if _aeg !=nil {return nil ,_aeg ;};_cc .Normalize ();_dgc :=page .CropBox ;var _ad ,_dd float64 ;if _dgc !=nil {_dgc .Normalize ();_ad ,_dd =_dgc .Width (),_dgc .Height ();
|
|
};_bd :=page .Rotate ;_ddc ,_be ,_de ,_bg :=_cc .Llx ,_cc .Lly ,_cc .Width (),_cc .Height ();_gbg :=_gg .IdentityMatrix ();if _bd !=nil &&*_bd %360!=0&&*_bd %90==0{_ggc :=-float64 (*_bd );_dae :=_aacf (_de ,_bg ,_ggc );_gbg =_gbg .Translate ((_dae .Width -_de )/2+_de /2,(_dae .Height -_bg )/2+_bg /2).Rotate (_ggc *_db .Pi /180).Translate (-_de /2,-_bg /2);
|
|
_de ,_bg =_dae .Width ,_dae .Height ;if _dgc !=nil {_aa :=_aacf (_ad ,_dd ,_ggc );_ad ,_dd =_aa .Width ,_aa .Height ;};};if _ddc !=0||_be !=0{_gbg =_gbg .Translate (-_ddc ,-_be );};_fb ._ee =1.0;if _fb .OutputWidth !=0{_af :=_de ;if _dgc !=nil {_af =_ad ;
|
|
};_fb ._ee =float64 (_fb .OutputWidth )/_af ;_de ,_bg ,_ad ,_dd =_de *_fb ._ee ,_bg *_fb ._ee ,_ad *_fb ._ee ,_dd *_fb ._ee ;_gbg =_gg .ScaleMatrix (_fb ._ee ,_fb ._ee ).Mult (_gbg );};_ec :=_gc .NewContext (int (_de ),int (_bg ));if _cd :=_fb .renderPage (_ec ,page ,_gbg );
|
|
_cd !=nil {return nil ,_cd ;};_ff :=_ec .Image ();if _dgc !=nil {_ga ,_gag :=(_dgc .Llx -_ddc )*_fb ._ee ,(_dgc .Lly -_be )*_fb ._ee ;_bb :=_ed .Rect (0,0,int (_ad ),int (_dd ));_dfe :=_ed .Pt (int (_ga ),int (_bg -_gag -_dd ));_bgb :=_ed .NewRGBA (_bb );
|
|
_a .Draw (_bgb ,_bb ,_ff ,_dfe ,_a .Src );_ff =_bgb ;};return _ff ,nil ;};func (_ggd renderer )processGradient (_fdf _fc .Context ,_fdb *_fgb .ContentStreamOperation ,_cdd *_df .PdfPageResources ,_aad *_c .PdfObjectName )(_fc .Gradient ,error ){if _eaf ,_cfae :=_cdd .GetPatternByName (*_aad );
|
|
_cfae &&_eaf .IsShading (){_abg :=_eaf .GetAsShadingPattern ().Shading ;_ecae ,_ ,_gbeg :=_ggd .processShading (_fdf ,_abg );if _gbeg !=nil {return nil ,_gbeg ;};return _ecae ,nil ;};return nil ,nil ;}; |