mirror of
https://github.com/unidoc/unipdf.git
synced 2025-04-24 13:48:49 +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 (_aa "errors";_gd "fmt";_be "github.com/adrg/sysfont";_b "github.com/unidoc/unipdf/v3/common";_ff "github.com/unidoc/unipdf/v3/contentstream";_gb "github.com/unidoc/unipdf/v3/contentstream/draw";_ef "github.com/unidoc/unipdf/v3/core";
|
|
_af "github.com/unidoc/unipdf/v3/internal/license";_ad "github.com/unidoc/unipdf/v3/internal/transform";_cd "github.com/unidoc/unipdf/v3/model";_cg "github.com/unidoc/unipdf/v3/render/internal/context";_bef "github.com/unidoc/unipdf/v3/render/internal/context/imagerender";
|
|
_ec "golang.org/x/image/draw";_c "image";_db "image/color";_f "image/draw";_fc "image/jpeg";_aed "image/png";_g "math";_ae "os";_e "path/filepath";_d "strings";);func (_gad renderer )renderContentStream (_bad _cg .Context ,_acge string ,_cca *_cd .PdfPageResources )error {_gea ,_gc :=_ff .NewContentStreamParser (_acge ).Parse ();
|
|
if _gc !=nil {return _gc ;};_ace :=_bad .TextState ();_ace .GlobalScale =_gad ._eag ;_edg :=map[string ]*_cg .TextFont {};_dcc :=_be .NewFinder (&_be .FinderOpts {Extensions :[]string {"\u002e\u0074\u0074\u0066","\u002e\u0074\u0074\u0063"}});var _fg *_ff .ContentStreamOperation ;
|
|
_ce :=_ff .NewContentStreamProcessor (*_gea );_ce .AddHandler (_ff .HandlerConditionEnumAllOperands ,"",func (_fae *_ff .ContentStreamOperation ,_bc _ff .GraphicsState ,_eee *_cd .PdfPageResources )error {_b .Log .Debug ("\u0050\u0072\u006f\u0063\u0065\u0073\u0073\u0069\u006e\u0067\u0020\u0025\u0073",_fae .Operand );
|
|
switch _fae .Operand {case "\u0071":_bad .Push ();case "\u0051":_bad .Pop ();_ace =_bad .TextState ();case "\u0063\u006d":if len (_fae .Params )!=6{return _gdc ;};_eb ,_dfe :=_ef .GetNumbersAsFloat (_fae .Params );if _dfe !=nil {return _dfe ;};_cdg :=_ad .NewMatrix (_eb [0],_eb [1],_eb [2],_eb [3],_eb [4],_eb [5]);
|
|
_b .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",_cdg );_bad .SetMatrix (_bad .Matrix ().Mult (_cdg ));case "\u0077":if len (_fae .Params )!=1{return _gdc ;
|
|
};_gef ,_ffc :=_ef .GetNumbersAsFloat (_fae .Params );if _ffc !=nil {return _ffc ;};_bad .SetLineWidth (_gef [0]);case "\u004a":if len (_fae .Params )!=1{return _gdc ;};_gfe ,_geb :=_ef .GetIntVal (_fae .Params [0]);if !_geb {return _ba ;};switch _gfe {case 0:_bad .SetLineCap (_cg .LineCapButt );
|
|
case 1:_bad .SetLineCap (_cg .LineCapRound );case 2:_bad .SetLineCap (_cg .LineCapSquare );default:_b .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",_gfe );
|
|
return _gdc ;};case "\u006a":if len (_fae .Params )!=1{return _gdc ;};_bfe ,_fdf :=_ef .GetIntVal (_fae .Params [0]);if !_fdf {return _ba ;};switch _bfe {case 0:_bad .SetLineJoin (_cg .LineJoinBevel );case 1:_bad .SetLineJoin (_cg .LineJoinRound );case 2:_bad .SetLineJoin (_cg .LineJoinBevel );
|
|
default:_b .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",_bfe );return _gdc ;};case "\u004d":if len (_fae .Params )!=1{return _gdc ;};_eeg ,_ccg :=_ef .GetNumbersAsFloat (_fae .Params );
|
|
if _ccg !=nil {return _ccg ;};_ =_eeg ;_b .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 (_fae .Params )!=2{return _gdc ;};_edf ,_ebd :=_ef .GetArray (_fae .Params [0]);
|
|
if !_ebd {return _ba ;};_gec ,_ebd :=_ef .GetIntVal (_fae .Params [1]);if !_ebd {_ ,_gadg :=_ef .GetFloatVal (_fae .Params [1]);if !_gadg {return _ba ;};};_acgc ,_gcb :=_ef .GetNumbersAsFloat (_edf .Elements ());if _gcb !=nil {return _gcb ;};_bad .SetDash (_acgc ...);
|
|
_ =_gec ;_b .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":_b .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":_b .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 (_fae .Params )!=1{return _gdc ;
|
|
};_dbd ,_gaf :=_ef .GetName (_fae .Params [0]);if !_gaf {return _ba ;};if _dbd ==nil {return _gdc ;};_ffd ,_gaf :=_eee .GetExtGState (*_dbd );if !_gaf {_b .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",*_dbd );
|
|
return _aa .New ("\u0072e\u0073o\u0075\u0072\u0063\u0065\u0020n\u006f\u0074 \u0066\u006f\u0075\u006e\u0064");};_ecg ,_gaf :=_ef .GetDict (_ffd );if !_gaf {_b .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 _ba ;};_b .Log .Debug ("G\u0053\u0020\u0064\u0069\u0063\u0074\u003a\u0020\u0025\u0073",_ecg .String ());case "\u006d":if len (_fae .Params )!=2{_b .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",_gdc );
|
|
return nil ;};_da ,_gfd :=_ef .GetNumbersAsFloat (_fae .Params );if _gfd !=nil {return _gfd ;};_b .Log .Debug ("M\u006f\u0076\u0065\u0020\u0074\u006f\u003a\u0020\u0025\u0076",_da );_bad .NewSubPath ();_bad .MoveTo (_da [0],_da [1]);case "\u006c":if len (_fae .Params )!=2{_b .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",_gdc );
|
|
return nil ;};_cgg ,_faed :=_ef .GetNumbersAsFloat (_fae .Params );if _faed !=nil {return _faed ;};_bad .LineTo (_cgg [0],_cgg [1]);case "\u0063":if len (_fae .Params )!=6{return _gdc ;};_ggc ,_fgf :=_ef .GetNumbersAsFloat (_fae .Params );if _fgf !=nil {return _fgf ;
|
|
};_b .Log .Debug ("\u0043u\u0062\u0069\u0063\u0020\u0062\u0065\u007a\u0069\u0065\u0072\u0020p\u0061\u0072\u0061\u006d\u0073\u003a\u0020\u0025\u002b\u0076",_ggc );_bad .CubicTo (_ggc [0],_ggc [1],_ggc [2],_ggc [3],_ggc [4],_ggc [5]);case "\u0076","\u0079":if len (_fae .Params )!=4{return _gdc ;
|
|
};_ca ,_edb :=_ef .GetNumbersAsFloat (_fae .Params );if _edb !=nil {return _edb ;};_b .Log .Debug ("\u0043u\u0062\u0069\u0063\u0020\u0062\u0065\u007a\u0069\u0065\u0072\u0020p\u0061\u0072\u0061\u006d\u0073\u003a\u0020\u0025\u002b\u0076",_ca );_bad .QuadraticTo (_ca [0],_ca [1],_ca [2],_ca [3]);
|
|
case "\u0068":_bad .ClosePath ();_bad .NewSubPath ();case "\u0072\u0065":if len (_fae .Params )!=4{return _gdc ;};_eg ,_ffb :=_ef .GetNumbersAsFloat (_fae .Params );if _ffb !=nil {return _ffb ;};_bad .DrawRectangle (_eg [0],_eg [1],_eg [2],_eg [3]);_bad .NewSubPath ();
|
|
case "\u0053":_cdf ,_edbe :=_bc .ColorspaceStroking .ColorToRGB (_bc .ColorStroking );if _edbe !=nil {_b .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",_edbe );
|
|
return _edbe ;};_ffcb ,_cgf :=_cdf .(*_cd .PdfColorDeviceRGB );if !_cgf {_b .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _edbe ;};_bad .SetRGBA (_ffcb .R (),_ffcb .G (),_ffcb .B (),1);
|
|
_bad .Stroke ();case "\u0073":_fdd ,_fgff :=_bc .ColorspaceStroking .ColorToRGB (_bc .ColorStroking );if _fgff !=nil {_b .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",_fgff );
|
|
return _fgff ;};_aae ,_egd :=_fdd .(*_cd .PdfColorDeviceRGB );if !_egd {_b .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _fgff ;};_bad .ClosePath ();_bad .NewSubPath ();
|
|
_bad .SetRGBA (_aae .R (),_aae .G (),_aae .B (),1);_bad .Stroke ();case "\u0066","\u0046":_bfee ,_dee :=_bc .ColorspaceNonStroking .ColorToRGB (_bc .ColorNonStroking );if _dee !=nil {_b .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",_dee );
|
|
return _dee ;};switch _ege :=_bfee .(type ){case *_cd .PdfColorDeviceRGB :_bad .SetRGBA (_ege .R (),_ege .G (),_ege .B (),1);_bad .SetFillRule (_cg .FillRuleWinding );_bad .Fill ();case *_cd .PdfColorPattern :_bad .Fill ();};_b .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");
|
|
case "\u0066\u002a":_dae ,_caf :=_bc .ColorspaceNonStroking .ColorToRGB (_bc .ColorNonStroking );if _caf !=nil {_b .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_caf );
|
|
return _caf ;};_bce ,_fab :=_dae .(*_cd .PdfColorDeviceRGB );if !_fab {_b .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _caf ;};_bad .SetRGBA (_bce .R (),_bce .G (),_bce .B (),1);
|
|
_bad .SetFillRule (_cg .FillRuleEvenOdd );_bad .Fill ();case "\u0042":_cb ,_egg :=_bc .ColorspaceNonStroking .ColorToRGB (_bc .ColorNonStroking );if _egg !=nil {_b .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",_egg );
|
|
return _egg ;};switch _edbb :=_cb .(type ){case *_cd .PdfColorDeviceRGB :_bad .SetRGBA (_edbb .R (),_edbb .G (),_edbb .B (),1);_bad .SetFillRule (_cg .FillRuleWinding );_bad .FillPreserve ();_cb ,_egg =_bc .ColorspaceStroking .ColorToRGB (_bc .ColorStroking );
|
|
if _egg !=nil {_b .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",_egg );return _egg ;};if _acgca ,_ebg :=_cb .(*_cd .PdfColorDeviceRGB );
|
|
_ebg {_bad .SetRGBA (_acgca .R (),_acgca .G (),_acgca .B (),1);_bad .Stroke ();};case *_cd .PdfColorPattern :_bad .SetFillRule (_cg .FillRuleWinding );_bad .Fill ();_bad .StrokePattern ();};case "\u0042\u002a":_ccaf ,_bac :=_bc .ColorspaceNonStroking .ColorToRGB (_bc .ColorNonStroking );
|
|
if _bac !=nil {_b .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",_bac );return _bac ;};switch _edfc :=_ccaf .(type ){case *_cd .PdfColorDeviceRGB :_bad .SetRGBA (_edfc .R (),_edfc .G (),_edfc .B (),1);
|
|
_bad .SetFillRule (_cg .FillRuleEvenOdd );_bad .FillPreserve ();_ccaf ,_bac =_bc .ColorspaceStroking .ColorToRGB (_bc .ColorStroking );if _bac !=nil {_b .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",_bac );
|
|
return _bac ;};if _aeaf ,_gbe :=_ccaf .(*_cd .PdfColorDeviceRGB );_gbe {_bad .SetRGBA (_aeaf .R (),_aeaf .G (),_aeaf .B (),1);_bad .Stroke ();};case *_cd .PdfColorPattern :_bad .SetFillRule (_cg .FillRuleEvenOdd );_bad .Fill ();_bad .StrokePattern ();};
|
|
case "\u0062":_bad .ClosePath ();_dec ,_fe :=_bc .ColorspaceNonStroking .ColorToRGB (_bc .ColorNonStroking );if _fe !=nil {_b .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",_fe );
|
|
return _fe ;};switch _bfa :=_dec .(type ){case *_cd .PdfColorDeviceRGB :_bad .SetRGBA (_bfa .R (),_bfa .G (),_bfa .B (),1);_bad .NewSubPath ();_bad .SetFillRule (_cg .FillRuleWinding );_bad .FillPreserve ();_dec ,_fe =_bc .ColorspaceStroking .ColorToRGB (_bc .ColorStroking );
|
|
if _fe !=nil {_b .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",_fe );return _fe ;};if _acc ,_ece :=_dec .(*_cd .PdfColorDeviceRGB );_ece {_bad .SetRGBA (_acc .R (),_acc .G (),_acc .B (),1);
|
|
_bad .Stroke ();};case *_cd .PdfColorPattern :_bad .NewSubPath ();_bad .SetFillRule (_cg .FillRuleWinding );_bad .Fill ();_bad .StrokePattern ();};case "\u0062\u002a":_bad .ClosePath ();_cf ,_bb :=_bc .ColorspaceNonStroking .ColorToRGB (_bc .ColorNonStroking );
|
|
if _bb !=nil {_b .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",_bb );return _bb ;};switch _gaa :=_cf .(type ){case *_cd .PdfColorDeviceRGB :_bad .SetRGBA (_gaa .R (),_gaa .G (),_gaa .B (),1);
|
|
_bad .NewSubPath ();_bad .SetFillRule (_cg .FillRuleEvenOdd );_bad .FillPreserve ();_cf ,_bb =_bc .ColorspaceStroking .ColorToRGB (_bc .ColorStroking );if _bb !=nil {_b .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",_bb );
|
|
return _bb ;};if _afcd ,_fga :=_cf .(*_cd .PdfColorDeviceRGB );_fga {_bad .SetRGBA (_afcd .R (),_afcd .G (),_afcd .B (),1);_bad .Stroke ();};case *_cd .PdfColorPattern :_bad .NewSubPath ();_bad .SetFillRule (_cg .FillRuleEvenOdd );_bad .Fill ();_bad .StrokePattern ();
|
|
};case "\u006e":_bad .ClearPath ();case "\u0057":_bad .SetFillRule (_cg .FillRuleWinding );_bad .ClipPreserve ();case "\u0057\u002a":_bad .SetFillRule (_cg .FillRuleEvenOdd );_bad .ClipPreserve ();case "\u0072\u0067":_faee ,_gff :=_bc .ColorNonStroking .(*_cd .PdfColorDeviceRGB );
|
|
if !_gff {_b .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",_bc .ColorNonStroking );return nil ;};_bad .SetFillRGBA (_faee .R (),_faee .G (),_faee .B (),1);
|
|
case "\u0052\u0047":_ceb ,_edff :=_bc .ColorStroking .(*_cd .PdfColorDeviceRGB );if !_edff {_b .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",_bc .ColorStroking );
|
|
return nil ;};_bad .SetStrokeRGBA (_ceb .R (),_ceb .G (),_ceb .B (),1);case "\u006b":_fcf ,_bdc :=_bc .ColorNonStroking .(*_cd .PdfColorDeviceCMYK );if !_bdc {_b .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",_bc .ColorNonStroking );
|
|
return nil ;};_cbd ,_gag :=_bc .ColorspaceNonStroking .ColorToRGB (_fcf );if _gag !=nil {_b .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",_bc .ColorNonStroking );
|
|
return nil ;};_accf ,_bdc :=_cbd .(*_cd .PdfColorDeviceRGB );if !_bdc {_b .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",_cbd );return nil ;
|
|
};_bad .SetFillRGBA (_accf .R (),_accf .G (),_accf .B (),1);case "\u004b":_gac ,_cfc :=_bc .ColorStroking .(*_cd .PdfColorDeviceCMYK );if !_cfc {_b .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",_bc .ColorStroking );
|
|
return nil ;};_faa ,_bfab :=_bc .ColorspaceStroking .ColorToRGB (_gac );if _bfab !=nil {_b .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",_bc .ColorStroking );
|
|
return nil ;};_fee ,_cfc :=_faa .(*_cd .PdfColorDeviceRGB );if !_cfc {_b .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",_faa );return nil ;
|
|
};_bad .SetStrokeRGBA (_fee .R (),_fee .G (),_fee .B (),1);case "\u0067":_afg ,_fea :=_bc .ColorNonStroking .(*_cd .PdfColorDeviceGray );if !_fea {_b .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",_bc .ColorNonStroking );
|
|
return nil ;};_fed ,_bea :=_bc .ColorspaceNonStroking .ColorToRGB (_afg );if _bea !=nil {_b .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",_bc .ColorNonStroking );
|
|
return nil ;};_faae ,_fea :=_fed .(*_cd .PdfColorDeviceRGB );if !_fea {_b .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",_fed );return nil ;
|
|
};_bad .SetFillRGBA (_faae .R (),_faae .G (),_faae .B (),1);case "\u0047":_eff ,_ega :=_bc .ColorStroking .(*_cd .PdfColorDeviceGray );if !_ega {_b .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",_bc .ColorStroking );
|
|
return nil ;};_edgf ,_fag :=_bc .ColorspaceStroking .ColorToRGB (_eff );if _fag !=nil {_b .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",_bc .ColorStroking );
|
|
return nil ;};_dfea ,_ega :=_edgf .(*_cd .PdfColorDeviceRGB );if !_ega {_b .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",_edgf );return nil ;
|
|
};_bad .SetStrokeRGBA (_dfea .R (),_dfea .G (),_dfea .B (),1);case "\u0063\u0073":if len (_fae .Params )> 0{if _fac ,_caa :=_ef .GetName (_fae .Params [0]);_caa &&_fac .String ()=="\u0050a\u0074\u0074\u0065\u0072\u006e"{break ;};};_geg ,_bcb :=_bc .ColorspaceNonStroking .ColorToRGB (_bc .ColorNonStroking );
|
|
if _bcb !=nil {_b .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",_bc .ColorNonStroking );return nil ;};_cebf ,_gaef :=_geg .(*_cd .PdfColorDeviceRGB );
|
|
if !_gaef {_b .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",_geg );return nil ;};_bad .SetFillRGBA (_cebf .R (),_cebf .G (),_cebf .B (),1);
|
|
case "\u0073\u0063":_gegg ,_cbg :=_bc .ColorspaceNonStroking .ColorToRGB (_bc .ColorNonStroking );if _cbg !=nil {_b .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",_bc .ColorNonStroking );
|
|
return nil ;};_fde ,_feea :=_gegg .(*_cd .PdfColorDeviceRGB );if !_feea {_b .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",_gegg );return nil ;
|
|
};_bad .SetFillRGBA (_fde .R (),_fde .G (),_fde .B (),1);case "\u0073\u0063\u006e":if len (_fae .Params )> 0&&len (_fg .Params )> 0{if _bdg ,_dcb :=_ef .GetName (_fg .Params [0]);_dcb &&_bdg .String ()=="\u0050a\u0074\u0074\u0065\u0072\u006e"{if _geca ,_gba :=_ef .GetName (_fae .Params [0]);
|
|
_gba {_gafb ,_decf :=_gad .processGradient (_bad ,_fae ,_eee ,_geca );if _decf !=nil {_b .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",_decf );
|
|
break ;};if _gafb ==nil {_b .Log .Debug ("\u0055\u006ek\u006e\u006f\u0077n\u0020\u0067\u0072\u0061\u0064\u0069\u0065\u006e\u0074");break ;};_bad .SetFillStyle (_gafb );_bad .SetStrokeStyle (_gafb );break ;};};};_egdb ,_cec :=_bc .ColorspaceNonStroking .ColorToRGB (_bc .ColorNonStroking );
|
|
if _cec !=nil {_b .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",_bc .ColorNonStroking );return nil ;};_bdd ,_ecd :=_egdb .(*_cd .PdfColorDeviceRGB );
|
|
if !_ecd {_b .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",_egdb );return nil ;};_bad .SetFillRGBA (_bdd .R (),_bdd .G (),_bdd .B (),1);
|
|
case "\u0043\u0053":if len (_fae .Params )> 0{if _cdgd ,_ede :=_ef .GetName (_fae .Params [0]);_ede &&_cdgd .String ()=="\u0050a\u0074\u0074\u0065\u0072\u006e"{break ;};};_dca ,_ccab :=_bc .ColorspaceStroking .ColorToRGB (_bc .ColorStroking );if _ccab !=nil {_b .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",_bc .ColorStroking );
|
|
return nil ;};_fef ,_fdb :=_dca .(*_cd .PdfColorDeviceRGB );if !_fdb {_b .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",_dca );return nil ;
|
|
};_bad .SetStrokeRGBA (_fef .R (),_fef .G (),_fef .B (),1);case "\u0053\u0043":_eeed ,_gaeg :=_bc .ColorspaceStroking .ColorToRGB (_bc .ColorStroking );if _gaeg !=nil {_b .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",_bc .ColorStroking );
|
|
return nil ;};_dgf ,_feee :=_eeed .(*_cd .PdfColorDeviceRGB );if !_feee {_b .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",_eeed );return nil ;
|
|
};_bad .SetStrokeRGBA (_dgf .R (),_dgf .G (),_dgf .B (),1);case "\u0053\u0043\u004e":if len (_fae .Params )> 0&&len (_fg .Params )> 0{if _ccd ,_dab :=_ef .GetName (_fg .Params [0]);_dab &&_ccd .String ()=="\u0050a\u0074\u0074\u0065\u0072\u006e"{if _gga ,_fce :=_ef .GetName (_fae .Params [0]);
|
|
_fce {_bbc ,_caff :=_gad .processGradient (_bad ,_fae ,_eee ,_gga );if _caff !=nil {_b .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",_caff );
|
|
break ;};if _bbc ==nil {_b .Log .Debug ("\u0055\u006ek\u006e\u006f\u0077n\u0020\u0067\u0072\u0061\u0064\u0069\u0065\u006e\u0074");break ;};_bad .SetFillStyle (_bbc );_bad .SetStrokeStyle (_bbc );break ;};};};_add ,_bbd :=_bc .ColorspaceStroking .ColorToRGB (_bc .ColorStroking );
|
|
if _bbd !=nil {_b .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",_bc .ColorStroking );return nil ;};_cga ,_aec :=_add .(*_cd .PdfColorDeviceRGB );
|
|
if !_aec {_b .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",_add );return nil ;};_bad .SetStrokeRGBA (_cga .R (),_cga .G (),_cga .B (),1);
|
|
case "\u0073\u0068":if len (_fae .Params )!=1{_b .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 ;};_daa ,_gca :=_ef .GetName (_fae .Params [0]);
|
|
if !_gca {_b .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 ;};_aceg ,_gca :=_eee .GetShadingByName (*_daa );if !_gca {_b .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 ;};_fdff ,_addb ,_fcc :=_gad .processShading (_bad ,_aceg );if _fcc !=nil {_b .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",_fcc );
|
|
break ;};if _fdff ==nil {_b .Log .Debug ("\u0055\u006ek\u006e\u006f\u0077n\u0020\u0067\u0072\u0061\u0064\u0069\u0065\u006e\u0074");break ;};_ead ,_fcc :=_addb .ToFloat64Array ();if _fcc !=nil {_b .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",_fcc );
|
|
break ;};_bad .DrawRectangle (_ead [0],_ead [1],_ead [2],_ead [3]);_bad .NewSubPath ();_bad .SetFillStyle (_fdff );_bad .SetStrokeStyle (_fdff );_bad .Fill ();case "\u0044\u006f":if len (_fae .Params )!=1{return _gdc ;};_bed ,_fgb :=_ef .GetName (_fae .Params [0]);
|
|
if !_fgb {return _ba ;};_ ,_dbg :=_eee .GetXObjectByName (*_bed );switch _dbg {case _cd .XObjectTypeImage :_b .Log .Debug ("\u0058\u004f\u0062\u006a\u0065\u0063\u0074\u0020\u0069\u006d\u0061\u0067e\u003a\u0020\u0025\u0073",_bed .String ());_fda ,_aeg :=_eee .GetXObjectImageByName (*_bed );
|
|
if _aeg !=nil {return _aeg ;};_dfg ,_aeg :=_fda .ToImage ();if _aeg !=nil {return _aeg ;};if _egef :=_fda .ColorSpace ;_egef !=nil {var _eed bool ;switch _egef .(type ){case *_cd .PdfColorspaceSpecialIndexed :_eed =true ;};if _eed {if _cee ,_gfeb :=_egef .ImageToRGB (*_dfg );
|
|
_gfeb !=nil {_b .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 {_dfg =&_cee ;};};};_beb :=_bad .FillPattern ().ColorAt (0,0);var _egad _c .Image ;if _fda .Mask !=nil {if _egad ,_aeg =_dbfc (_fda .Mask ,_beb );_aeg !=nil {_b .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 _fda .SMask !=nil {if _egad ,_aeg =_cda (_fda .SMask ,_beb );_aeg !=nil {_b .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 _ade _c .Image ;if _dcbc ,_ :=_ef .GetBoolVal (_fda .ImageMask );_dcbc {_ade =_acd (_dfg ,_beb );}else {_ade ,_aeg =_dfg .ToGoImage ();if _aeg !=nil {return _aeg ;};};if _egad !=nil {_ade =_befb (_ade ,_egad );};_ag :=_ade .Bounds ();_bad .Push ();
|
|
_bad .Scale (1.0/float64 (_ag .Dx ()),-1.0/float64 (_ag .Dy ()));_bad .DrawImageAnchored (_ade ,0,0,0,1);_bad .Pop ();case _cd .XObjectTypeForm :_b .Log .Debug ("\u0058\u004fb\u006a\u0065\u0063t\u0020\u0066\u006f\u0072\u006d\u003a\u0020\u0025\u0073",_bed .String ());
|
|
_ebgd ,_eda :=_eee .GetXObjectFormByName (*_bed );if _eda !=nil {return _eda ;};_fdee ,_eda :=_ebgd .GetContentStream ();if _eda !=nil {return _eda ;};_cde :=_ebgd .Resources ;if _cde ==nil {_cde =_eee ;};_bad .Push ();if _ebgd .Matrix !=nil {_daf ,_aegg :=_ef .GetArray (_ebgd .Matrix );
|
|
if !_aegg {return _ba ;};_bead ,_agd :=_ef .GetNumbersAsFloat (_daf .Elements ());if _agd !=nil {return _agd ;};if len (_bead )!=6{return _gdc ;};_eae :=_ad .NewMatrix (_bead [0],_bead [1],_bead [2],_bead [3],_bead [4],_bead [5]);_bad .SetMatrix (_bad .Matrix ().Mult (_eae ));
|
|
};if _ebgd .BBox !=nil {_fdac ,_ccb :=_ef .GetArray (_ebgd .BBox );if !_ccb {return _ba ;};_dabf ,_cdd :=_ef .GetNumbersAsFloat (_fdac .Elements ());if _cdd !=nil {return _cdd ;};if len (_dabf )!=4{_b .Log .Debug ("\u004c\u0065\u006e\u0020\u003d\u0020\u0025\u0064",len (_dabf ));
|
|
return _gdc ;};_bad .DrawRectangle (_dabf [0],_dabf [1],_dabf [2]-_dabf [0],_dabf [3]-_dabf [1]);_bad .SetRGBA (1,0,0,1);_bad .Clip ();}else {_b .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");
|
|
};_eda =_gad .renderContentStream (_bad ,string (_fdee ),_cde );if _eda !=nil {return _eda ;};_bad .Pop ();};case "\u0042\u0049":if len (_fae .Params )!=1{return _gdc ;};_cddf ,_ceg :=_fae .Params [0].(*_ff .ContentStreamInlineImage );if !_ceg {return nil ;
|
|
};_aega ,_dea :=_cddf .ToImage (_eee );if _dea !=nil {return _dea ;};_cfb ,_dea :=_aega .ToGoImage ();if _dea !=nil {return _dea ;};_ddb :=_cfb .Bounds ();_bad .Push ();_bad .Scale (1.0/float64 (_ddb .Dx ()),-1.0/float64 (_ddb .Dy ()));_bad .DrawImageAnchored (_cfb ,0,0,0,1);
|
|
_bad .Pop ();case "\u0042\u0054":_ace .Reset ();case "\u0045\u0054":_ace .Reset ();case "\u0054\u0072":if len (_fae .Params )!=1{return _gdc ;};_fge ,_ebe :=_ef .GetNumberAsFloat (_fae .Params [0]);if _ebe !=nil {return _ebe ;};_ace .Tr =_cg .TextRenderingMode (_fge );
|
|
case "\u0054\u004c":if len (_fae .Params )!=1{return _gdc ;};_egae ,_cbb :=_ef .GetNumberAsFloat (_fae .Params [0]);if _cbb !=nil {return _cbb ;};_ace .Tl =_egae ;case "\u0054\u0063":if len (_fae .Params )!=1{return _gdc ;};_fgec ,_cebd :=_ef .GetNumberAsFloat (_fae .Params [0]);
|
|
if _cebd !=nil {return _cebd ;};_b .Log .Debug ("\u0054\u0063\u003a\u0020\u0025\u0076",_fgec );_ace .Tc =_fgec ;case "\u0054\u0077":if len (_fae .Params )!=1{return _gdc ;};_bgd ,_eaa :=_ef .GetNumberAsFloat (_fae .Params [0]);if _eaa !=nil {return _eaa ;
|
|
};_b .Log .Debug ("\u0054\u0077\u003a\u0020\u0025\u0076",_bgd );_ace .Tw =_bgd ;case "\u0054\u007a":if len (_fae .Params )!=1{return _gdc ;};_dgg ,_bfad :=_ef .GetNumberAsFloat (_fae .Params [0]);if _bfad !=nil {return _bfad ;};_ace .Th =_dgg ;case "\u0054\u0073":if len (_fae .Params )!=1{return _gdc ;
|
|
};_bgb ,_cdec :=_ef .GetNumberAsFloat (_fae .Params [0]);if _cdec !=nil {return _cdec ;};_ace .Ts =_bgb ;case "\u0054\u0064":if len (_fae .Params )!=2{return _gdc ;};_bae ,_ggb :=_ef .GetNumbersAsFloat (_fae .Params );if _ggb !=nil {return _ggb ;};_b .Log .Debug ("\u0054\u0064\u003a\u0020\u0025\u0076",_bae );
|
|
_ace .ProcTd (_bae [0],_bae [1]);case "\u0054\u0044":if len (_fae .Params )!=2{return _gdc ;};_aaec ,_fgeg :=_ef .GetNumbersAsFloat (_fae .Params );if _fgeg !=nil {return _fgeg ;};_b .Log .Debug ("\u0054\u0044\u003a\u0020\u0025\u0076",_aaec );_ace .ProcTD (_aaec [0],_aaec [1]);
|
|
case "\u0054\u002a":_ace .ProcTStar ();case "\u0054\u006d":if len (_fae .Params )!=6{return _gdc ;};_cag ,_bab :=_ef .GetNumbersAsFloat (_fae .Params );if _bab !=nil {return _bab ;};_b .Log .Debug ("\u0054\u0065x\u0074\u0020\u006da\u0074\u0072\u0069\u0078\u003a\u0020\u0025\u002b\u0076",_cag );
|
|
_ace .ProcTm (_cag [0],_cag [1],_cag [2],_cag [3],_cag [4],_cag [5]);case "\u0027":if len (_fae .Params )!=1{return _gdc ;};_gada ,_gce :=_ef .GetStringBytes (_fae .Params [0]);if !_gce {return _ba ;};_b .Log .Debug ("\u0027\u0020\u0073t\u0072\u0069\u006e\u0067\u003a\u0020\u0025\u0073",string (_gada ));
|
|
_ace .ProcQ (_gada ,_bad );case "\u0022":if len (_fae .Params )!=3{return _gdc ;};_gab ,_edbc :=_ef .GetNumberAsFloat (_fae .Params [0]);if _edbc !=nil {return _edbc ;};_acca ,_edbc :=_ef .GetNumberAsFloat (_fae .Params [1]);if _edbc !=nil {return _edbc ;
|
|
};_aaa ,_bcef :=_ef .GetStringBytes (_fae .Params [2]);if !_bcef {return _ba ;};_ace .ProcDQ (_aaa ,_gab ,_acca ,_bad );case "\u0054\u006a":if len (_fae .Params )!=1{return _gdc ;};_gagd ,_fff :=_ef .GetStringBytes (_fae .Params [0]);if !_fff {return _ba ;
|
|
};_b .Log .Debug ("\u0054j\u0020s\u0074\u0072\u0069\u006e\u0067\u003a\u0020\u0060\u0025\u0073\u0060",string (_gagd ));_ace .ProcTj (_gagd ,_bad );case "\u0054\u004a":if len (_fae .Params )!=1{return _gdc ;};_gagdd ,_dfbaf :=_ef .GetArray (_fae .Params [0]);
|
|
if !_dfbaf {_b .Log .Debug ("\u0054\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_gagdd );return _ba ;};_b .Log .Debug ("\u0054\u004a\u0020\u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u002b\u0076",_gagdd );for _ ,_ebc :=range _gagdd .Elements (){switch _agf :=_ebc .(type ){case *_ef .PdfObjectString :if _agf !=nil {_ace .ProcTj (_agf .Bytes (),_bad );
|
|
};case *_ef .PdfObjectFloat ,*_ef .PdfObjectInteger :_cff ,_gabd :=_ef .GetNumberAsFloat (_agf );if _gabd ==nil {_ace .Translate (-_cff *0.001*_ace .Tf .Size *_ace .Th /100.0,0);};};};case "\u0054\u0066":if len (_fae .Params )!=2{return _gdc ;};_b .Log .Debug ("\u0025\u0023\u0076",_fae .Params );
|
|
_eab ,_cggd :=_ef .GetName (_fae .Params [0]);if !_cggd ||_eab ==nil {_b .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",_fae .Params [0]);
|
|
return _ba ;};_b .Log .Debug ("\u0046\u006f\u006e\u0074\u0020\u006e\u0061\u006d\u0065\u003a\u0020\u0025\u0073",_eab .String ());_ebdc ,_beg :=_ef .GetNumberAsFloat (_fae .Params [1]);if _beg !=nil {_b .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",_fae .Params [1]);
|
|
return _ba ;};_b .Log .Debug ("\u0046\u006f\u006e\u0074\u0020\u0073\u0069\u007a\u0065\u003a\u0020\u0025\u0076",_ebdc );_ebdg ,_gcd :=_eee .GetFontByName (*_eab );if !_gcd {_b .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0046\u006f\u006e\u0074\u0020\u0025s\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064",_eab .String ());
|
|
return _aa .New ("\u0066\u006f\u006e\u0074\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};_b .Log .Debug ("\u0046\u006f\u006e\u0074\u003a\u0020\u0025\u0054",_ebdg );_bbg ,_cggd :=_ef .GetDict (_ebdg );if !_cggd {_b .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 _ba ;};_cebb ,_beg :=_cd .NewPdfFontFromPdfObject (_bbg );if _beg !=nil {_b .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 _beg ;};_cbe :=_cebb .BaseFont ();if _cbe ==""{_cbe =_eab .String ();};_bdb ,_cggd :=_edg [_cbe ];if !_cggd {_bdb ,_beg =_cg .NewTextFont (_cebb ,_ebdc );if _beg !=nil {_b .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_beg );};};if _bdb ==nil {if len (_cbe )> 7&&_cbe [6]=='+'{_cbe =_cbe [7:];
|
|
};_ccde :=[]string {_cbe ,"\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 _ ,_cae :=range _ccde {_b .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",_cae );
|
|
if _bdb ,_cggd =_edg [_cae ];_cggd {break ;};_bda :=_dcc .Match (_cae );if _bda ==nil {_b .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",_cae );continue ;
|
|
};_bdb ,_beg =_cg .NewTextFontFromPath (_bda .Filename ,_ebdc );if _beg !=nil {_b .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",_bda .Filename );
|
|
continue ;};_b .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",_cbe ,_bda .Name ,_bda .Filename );_edg [_cae ]=_bdb ;
|
|
break ;};};if _bdb ==nil {_b .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 _aa .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");};_ace .ProcTf (_bdb .WithSize (_ebdc ,_cebb ));case "\u0042\u004d\u0043","\u0042\u0044\u0043":case "\u0045\u004d\u0043":default:_b .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",_fae .Operand );
|
|
};_fg =_fae ;return nil ;});_gc =_ce .Process (_cca );if _gc !=nil {return _gc ;};return 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 (_cdc renderer )processGradient (_dbdd _cg .Context ,_gaag *_ff .ContentStreamOperation ,_dbed *_cd .PdfPageResources ,_gbea *_ef .PdfObjectName )(_cg .Gradient ,error ){if _faedf ,_gdcd :=_dbed .GetPatternByName (*_gbea );_gdcd &&_faedf .IsShading (){_bfd :=_faedf .GetAsShadingPattern ().Shading ;
|
|
_fdfe ,_ ,_efa :=_cdc .processShading (_dbdd ,_bfd );if _efa !=nil {return nil ,_efa ;};return _fdfe ,nil ;};return nil ,nil ;};func (_cfcf renderer )processLinearShading (_cab _cg .Context ,_abb *_cd .PdfShading )(_cg .Gradient ,*_ef .PdfObjectArray ,error ){_fcb :=_abb .GetContext ().(*_cd .PdfShadingType2 );
|
|
if len (_fcb .Function )==0{return nil ,nil ,_aa .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");
|
|
};_edcg ,_bbdd :=_fcb .Coords .ToFloat64Array ();if _bbdd !=nil {return nil ,nil ,_aa .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");
|
|
};_aecc :=_abb .ColorSpace ;_bfabg ,_age :=_cab .Matrix ().Transform (_edcg [0],_edcg [1]);_gcec ,_fgg :=_cab .Matrix ().Transform (_edcg [2],_edcg [3]);_bag :=_bef .NewLinearGradient (_bfabg ,_age ,_gcec ,_fgg );_accaa :=_ef .MakeArrayFromFloats ([]float64 {0,0,1,1});
|
|
for _ ,_ebcd :=range _edcg {if _ebcd > 1{_accaa =_fcb .Coords ;break ;};};if _fcfg ,_daee :=_fcb .Function [0].(*_cd .PdfFunctionType2 );_daee {_bag ,_bbdd =_fbfa (_bag ,_fcfg ,_aecc ,1.0,true );}else if _efc ,_fgae :=_fcb .Function [0].(*_cd .PdfFunctionType3 );
|
|
_fgae {_egde :=append ([]float64 {0},_efc .Bounds ...);_egde =append (_egde ,1.0);_bag ,_bbdd =_dde (_bag ,_efc ,_aecc ,_egde );};return _bag ,_accaa ,_bbdd ;};var (_ba =_aa .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
|
|
_gdc =_aa .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072"););
|
|
|
|
// PdfShadingType defines PDF shading types.
|
|
// Source: PDF32000_2008.pdf. Chapter 8.7.4.5
|
|
type PdfShadingType int64 ;func (_gdf renderer )renderPage (_bg _cg .Context ,_fb *_cd .PdfPage ,_ee _ad .Matrix )error {_bf ,_aac :=_fb .GetAllContentStreams ();if _aac !=nil {return _aac ;};if _gg :=_ee ;!_gg .Identity (){_bf =_gd .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",_gg [0],_gg [1],_gg [3],_gg [4],_gg [6],_gg [7],_bf );
|
|
};_bg .Translate (0,float64 (_bg .Height ()));_bg .Scale (1,-1);_bg .Push ();_bg .SetRGBA (1,1,1,1);_bg .DrawRectangle (0,0,float64 (_bg .Width ()),float64 (_bg .Height ()));_bg .Fill ();_bg .Pop ();_bg .SetLineWidth (1.0);_bg .SetRGBA (0,0,0,1);return _gdf .renderContentStream (_bg ,_bf ,_fb .Resources );
|
|
};func _baf (_edd string ,_ged _c .Image )error {_fcea ,_bfg :=_ae .Create (_edd );if _bfg !=nil {return _bfg ;};defer _fcea .Close ();return _aed .Encode (_fcea ,_ged );};type renderer struct{_eag float64 };
|
|
|
|
// RenderToPath converts the specified PDF page into an image and saves the
|
|
// result at the specified location.
|
|
func (_ge *ImageDevice )RenderToPath (page *_cd .PdfPage ,outputPath string )error {_dbf ,_fdg :=_ge .Render (page );if _fdg !=nil {return _fdg ;};_dg :=_d .ToLower (_e .Ext (outputPath ));if _dg ==""{return _aa .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 _dg {case "\u002e\u0070\u006e\u0067":return _baf (outputPath ,_dbf );case "\u002e\u006a\u0070\u0067","\u002e\u006a\u0070e\u0067":return _bgf (outputPath ,_dbf ,100);};return _gd .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",_dg );
|
|
};func _befb (_dafe ,_bcc _c .Image )_c .Image {_feg ,_fcg :=_bcc .Bounds ().Size (),_dafe .Bounds ().Size ();_bded ,_fedg :=_feg .X ,_feg .Y ;if _fcg .X > _bded {_bded =_fcg .X ;};if _fcg .Y > _fedg {_fedg =_fcg .Y ;};_ccf :=_c .Rect (0,0,_bded ,_fedg );
|
|
if _feg .X !=_bded ||_feg .Y !=_fedg {_bbgf :=_c .NewRGBA (_ccf );_ec .BiLinear .Scale (_bbgf ,_ccf ,_dafe ,_bcc .Bounds (),_ec .Over ,nil );_bcc =_bbgf ;};if _fcg .X !=_bded ||_fcg .Y !=_fedg {_cea :=_c .NewRGBA (_ccf );_ec .BiLinear .Scale (_cea ,_ccf ,_dafe ,_dafe .Bounds (),_ec .Over ,nil );
|
|
_dafe =_cea ;};_ebca :=_c .NewRGBA (_ccf );_ec .DrawMask (_ebca ,_ccf ,_dafe ,_c .Point {},_bcc ,_c .Point {},_ec .Over );return _ebca ;};func _dde (_ddg _cg .Gradient ,_feec *_cd .PdfFunctionType3 ,_cbea _cd .PdfColorspace ,_edge []float64 )(_cg .Gradient ,error ){var _efb error ;
|
|
for _cdcb :=0;_cdcb < len (_feec .Functions );_cdcb ++{if _gdg ,_ccbb :=_feec .Functions [_cdcb ].(*_cd .PdfFunctionType2 );_ccbb {_ddg ,_efb =_fbfa (_ddg ,_gdg ,_cbea ,_edge [_cdcb +1],_cdcb ==0);if _efb !=nil {return nil ,_efb ;};};};return _ddg ,nil ;
|
|
};
|
|
|
|
// NewImageDevice returns a new image device.
|
|
func NewImageDevice ()*ImageDevice {const _cc ="r\u0065\u006e\u0064\u0065r.\u004ee\u0077\u0049\u006d\u0061\u0067e\u0044\u0065\u0076\u0069\u0063\u0065";_af .TrackUse (_cc );return &ImageDevice {};};func _gefd (_aacb ,_agb ,_gdga float64 )_gb .BoundingBox {return _gb .Path {Points :[]_gb .Point {_gb .NewPoint (0,0).Rotate (_gdga ),_gb .NewPoint (_aacb ,0).Rotate (_gdga ),_gb .NewPoint (0,_agb ).Rotate (_gdga ),_gb .NewPoint (_aacb ,_agb ).Rotate (_gdga )}}.GetBoundingBox ();
|
|
};func _bgf (_edad string ,_ggad _c .Image ,_aca int )error {_abgg ,_cge :=_ae .Create (_edad );if _cge !=nil {return _cge ;};defer _abgg .Close ();return _fc .Encode (_abgg ,_ggad ,&_fc .Options {Quality :_aca });};func (_eeee renderer )processRadialShading (_eedc _cg .Context ,_agg *_cd .PdfShading )(_cg .Gradient ,*_ef .PdfObjectArray ,error ){_egc :=_agg .GetContext ().(*_cd .PdfShadingType3 );
|
|
if len (_egc .Function )==0{return nil ,nil ,_aa .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");
|
|
};_gdfc ,_ddaf :=_egc .Coords .ToFloat64Array ();if _ddaf !=nil {return nil ,nil ,_aa .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");
|
|
};_eec :=_agg .ColorSpace ;_aece :=_ef .MakeArrayFromFloats ([]float64 {0,0,1,1});var _fabb ,_abg ,_cabg ,_deb ,_afce ,_eage float64 ;_fabb ,_abg =_eedc .Matrix ().Transform (_gdfc [0],_gdfc [1]);_cabg ,_deb =_eedc .Matrix ().Transform (_gdfc [3],_gdfc [4]);
|
|
_afce ,_ =_eedc .Matrix ().Transform (_gdfc [2],0);_eage ,_ =_eedc .Matrix ().Transform (_gdfc [5],0);_abc ,_ :=_eedc .Matrix ().Translation ();_afce -=_abc ;_eage -=_abc ;for _dba ,_bff :=range _gdfc {if _dba ==2||_dba ==5{continue ;};if _bff > 1.0{_dcd :=_g .Min (_fabb -_afce ,_cabg -_eage );
|
|
_cgd :=_g .Min (_abg -_afce ,_deb -_eage );_ecde :=_g .Max (_fabb +_afce ,_cabg +_eage );_adg :=_g .Max (_abg +_afce ,_deb +_eage );_ffa :=_ecde -_dcd ;_dga :=_cgd -_adg ;_aece =_ef .MakeArrayFromFloats ([]float64 {_dcd ,_cgd ,_ffa ,_dga });break ;};};
|
|
_acf :=_bef .NewRadialGradient (_fabb ,_abg ,_afce ,_cabg ,_deb ,_eage );if _gbd ,_dfc :=_egc .Function [0].(*_cd .PdfFunctionType2 );_dfc {_acf ,_ddaf =_fbfa (_acf ,_gbd ,_eec ,1.0,true );}else if _efac ,_afcf :=_egc .Function [0].(*_cd .PdfFunctionType3 );
|
|
_afcf {_ggbd :=append ([]float64 {0},_efac .Bounds ...);_ggbd =append (_ggbd ,1.0);_acf ,_ddaf =_dde (_acf ,_efac ,_eec ,_ggbd );};if _ddaf !=nil {return nil ,nil ,_ddaf ;};return _acf ,_aece ,nil ;};func _fbfa (_fabf _cg .Gradient ,_bcbc *_cd .PdfFunctionType2 ,_ddf _cd .PdfColorspace ,_cef float64 ,_agc bool )(_cg .Gradient ,error ){switch _ddf .(type ){case *_cd .PdfColorspaceDeviceRGB :if len (_bcbc .C0 )!=3||len (_bcbc .C1 )!=3{return nil ,_aa .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");
|
|
};_dbb :=_bcbc .C0 ;_dbdf :=_bcbc .C1 ;if _agc {_fabf .AddColorStop (0.0,_db .RGBA {R :uint8 (_dbb [0]*255),G :uint8 (_dbb [1]*255),B :uint8 (_dbb [2]*255),A :255});};_fabf .AddColorStop (_cef ,_db .RGBA {R :uint8 (_dbdf [0]*255),G :uint8 (_dbdf [1]*255),B :uint8 (_dbdf [2]*255),A :255});
|
|
case *_cd .PdfColorspaceDeviceCMYK :if len (_bcbc .C0 )!=4||len (_bcbc .C1 )!=4{return nil ,_aa .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");
|
|
};_bgbd :=_bcbc .C0 ;_eca :=_bcbc .C1 ;if _agc {_fabf .AddColorStop (0.0,_db .CMYK {C :uint8 (_bgbd [0]*255),M :uint8 (_bgbd [1]*255),Y :uint8 (_bgbd [2]*255),K :uint8 (_bgbd [3]*255)});};_fabf .AddColorStop (_cef ,_db .CMYK {C :uint8 (_eca [0]*255),M :uint8 (_eca [1]*255),Y :uint8 (_eca [2]*255),K :uint8 (_eca [3]*255)});
|
|
default:return nil ,_gd .Errorf ("u\u006e\u0073\u0075\u0070\u0070\u006fr\u0074\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072 \u0073\u0070\u0061c\u0065:\u0020\u0025\u0073",_ddf .String ());};return _fabf ,nil ;};func _acd (_acfa *_cd .Image ,_bdda _db .Color )_c .Image {_cgeb ,_gbb :=int (_acfa .Width ),int (_acfa .Height );
|
|
_ffe :=_c .NewRGBA (_c .Rect (0,0,_cgeb ,_gbb ));for _fdgg :=0;_fdgg < _gbb ;_fdgg ++{for _dge :=0;_dge < _cgeb ;_dge ++{_gee ,_cagd :=_acfa .ColorAt (_dge ,_fdgg );if _cagd !=nil {_b .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",_dge ,_fdgg );
|
|
continue ;};_bfag ,_bddc ,_ceeb ,_ :=_gee .RGBA ();var _bfde _db .Color ;if _bfag +_bddc +_ceeb ==0{_bfde =_bdda ;}else {_bfde =_db .Transparent ;};_ffe .Set (_dge ,_fdgg ,_bfde );};};return _ffe ;};
|
|
|
|
// Render converts the specified PDF page into an image and returns the result.
|
|
func (_bd *ImageDevice )Render (page *_cd .PdfPage )(_c .Image ,error ){_df ,_de :=page .GetMediaBox ();if _de !=nil {return nil ,_de ;};_df .Normalize ();_dfb :=page .CropBox ;var _ecf ,_aef float64 ;if _dfb !=nil {_dfb .Normalize ();_ecf ,_aef =_dfb .Width (),_dfb .Height ();
|
|
};_ga :=page .Rotate ;_aea ,_gbc ,_aff ,_fa :=_df .Llx ,_df .Lly ,_df .Width (),_df .Height ();_ea :=_ad .IdentityMatrix ();if _ga !=nil &&*_ga %360!=0&&*_ga %90==0{_ed :=-float64 (*_ga );_edc :=_gefd (_aff ,_fa ,_ed );_ea =_ea .Translate ((_edc .Width -_aff )/2+_aff /2,(_edc .Height -_fa )/2+_fa /2).Rotate (_ed *_g .Pi /180).Translate (-_aff /2,-_fa /2);
|
|
_aff ,_fa =_edc .Width ,_edc .Height ;if _dfb !=nil {_dd :=_gefd (_ecf ,_aef ,_ed );_ecf ,_aef =_dd .Width ,_dd .Height ;};};if _aea !=0||_gbc !=0{_ea =_ea .Translate (-_aea ,-_gbc );};_bd ._eag =1.0;if _bd .OutputWidth !=0{_fd :=_aff ;if _dfb !=nil {_fd =_ecf ;
|
|
};_bd ._eag =float64 (_bd .OutputWidth )/_fd ;_aff ,_fa ,_ecf ,_aef =_aff *_bd ._eag ,_fa *_bd ._eag ,_ecf *_bd ._eag ,_aef *_bd ._eag ;_ea =_ad .ScaleMatrix (_bd ._eag ,_bd ._eag ).Mult (_ea );};_afc :=_bef .NewContext (int (_aff ),int (_fa ));if _gae :=_bd .renderPage (_afc ,page ,_ea );
|
|
_gae !=nil {return nil ,_gae ;};_ac :=_afc .Image ();if _dfb !=nil {_gf ,_ab :=(_dfb .Llx -_aea )*_bd ._eag ,(_dfb .Lly -_gbc )*_bd ._eag ;_dfba :=_c .Rect (0,0,int (_ecf ),int (_aef ));_dc :=_c .Pt (int (_gf ),int (_fa -_ab -_aef ));_acg :=_c .NewRGBA (_dfba );
|
|
_f .Draw (_acg ,_dfba ,_ac ,_dc ,_f .Src );_ac =_acg ;};return _ac ,nil ;};func _dbfc (_cbgd _ef .PdfObject ,_fffd _db .Color )(_c .Image ,error ){_dfbd ,_bfc :=_ef .GetStream (_cbgd );if !_bfc {return nil ,nil ;};_egea ,_ddd :=_cd .NewXObjectImageFromStream (_dfbd );
|
|
if _ddd !=nil {return nil ,_ddd ;};_dcbg ,_ddd :=_egea .ToImage ();if _ddd !=nil {return nil ,_ddd ;};return _acd (_dcbg ,_fffd ),nil ;};func _cda (_cgdd _ef .PdfObject ,_gfeg _db .Color )(_c .Image ,error ){_deea ,_cbfb :=_ef .GetStream (_cgdd );if !_cbfb {return nil ,nil ;
|
|
};_bgg ,_dgd :=_cd .NewXObjectImageFromStream (_deea );if _dgd !=nil {return nil ,_dgd ;};_cac ,_dgd :=_bgg .ToImage ();if _dgd !=nil {return nil ,_dgd ;};return _efg (_cac ,_gfeg ),nil ;};func _efg (_fad *_cd .Image ,_fdggg _db .Color )_c .Image {_eegd ,_cbef :=int (_fad .Width ),int (_fad .Height );
|
|
_cbf :=_c .NewRGBA (_c .Rect (0,0,_eegd ,_cbef ));for _dbgc :=0;_dbgc < _cbef ;_dbgc ++{for _cega :=0;_cega < _eegd ;_cega ++{_ccdf ,_efcf :=_fad .ColorAt (_cega ,_dbgc );if _efcf !=nil {_b .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",_cega ,_dbgc );
|
|
continue ;};_eecd ,_dged ,_fdga ,_ :=_ccdf .RGBA ();var _aeff _db .Color ;if _eecd +_dged +_fdga ==0{_aeff =_db .Transparent ;}else {_aeff =_fdggg ;};_cbf .Set (_cega ,_dbgc ,_aeff );};};return _cbf ;};const (ShadingTypeFunctionBased PdfShadingType =1;
|
|
ShadingTypeAxial PdfShadingType =2;ShadingTypeRadial PdfShadingType =3;ShadingTypeFreeForm PdfShadingType =4;ShadingTypeLatticeForm PdfShadingType =5;ShadingTypeCoons PdfShadingType =6;ShadingTypeTensorProduct PdfShadingType =7;);func (_dbee renderer )processShading (_afga _cg .Context ,_dbeef *_cd .PdfShading )(_cg .Gradient ,*_ef .PdfObjectArray ,error ){_gabc :=int64 (*_dbeef .ShadingType );
|
|
if _gabc ==int64 (ShadingTypeAxial ){return _dbee .processLinearShading (_afga ,_dbeef );}else if _gabc ==int64 (ShadingTypeRadial ){return _dbee .processRadialShading (_afga ,_dbeef );}else {_b .Log .Debug (_gd .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",_gabc ));
|
|
};return nil ,nil ,nil ;}; |