Skip to content

Commit b67948e

Browse files
authored
Merge pull request #584 from unidoc-build/prep-rc-v4.0.0
2 parents 68e3753 + 013fd98 commit b67948e

File tree

66 files changed

+16900
-16669
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+16900
-16669
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ Contact us if you need any specific examples.
4343
## Installation
4444
With modules:
4545
~~~
46-
go get github.com/unidoc/unipdf/v3
46+
go get github.com/unidoc/unipdf/v4
4747
~~~
4848

4949
## License key

annotator/annotator.go

Lines changed: 436 additions & 438 deletions
Large diffs are not rendered by default.

common/common.go

Lines changed: 62 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -10,102 +10,100 @@
1010
// terms that can be accessed at https://unidoc.io/eula/
1111

1212
// Package common contains common properties used by the subpackages.
13-
package common ;import (_a "fmt";_bdc "io";_bd "os";_ab "path/filepath";_c "runtime";_f "time";);
13+
package common ;import (_c "fmt";_gf "io";_a "os";_g "path/filepath";_f "runtime";_cg "time";);const (LogLevelTrace LogLevel =5;LogLevelDebug LogLevel =4;LogLevelInfo LogLevel =3;LogLevelNotice LogLevel =2;LogLevelWarning LogLevel =1;LogLevelError LogLevel =0;
14+
);
1415

15-
// Warning logs warning message.
16-
func (_fceg WriterLogger )Warning (format string ,args ...interface{}){if _fceg .LogLevel >=LogLevelWarning {_ec :="\u005b\u0057\u0041\u0052\u004e\u0049\u004e\u0047\u005d\u0020";_fceg .logToWriter (_fceg .Output ,_ec ,format ,args ...);};};
17-
18-
// ConsoleLogger is a logger that writes logs to the 'os.Stdout'
19-
type ConsoleLogger struct{LogLevel LogLevel ;};
16+
// IsLogLevel returns true from dummy logger.
17+
func (DummyLogger )IsLogLevel (level LogLevel )bool {return true };func (_bg WriterLogger )logToWriter (_ga _gf .Writer ,_gec string ,_fgd string ,_bec ...interface{}){_gbg (_ga ,_gec ,_fgd ,_bec );};
2018

21-
// Notice logs notice message.
22-
func (_bag WriterLogger )Notice (format string ,args ...interface{}){if _bag .LogLevel >=LogLevelNotice {_bge :="\u005bN\u004f\u0054\u0049\u0043\u0045\u005d ";_bag .logToWriter (_bag .Output ,_bge ,format ,args ...);};};
19+
// Logger is the interface used for logging in the unipdf package.
20+
type Logger interface{Error (_d string ,_fg ...interface{});Warning (_e string ,_de ...interface{});Notice (_ff string ,_gb ...interface{});Info (_fc string ,_aa ...interface{});Debug (_eb string ,_fa ...interface{});Trace (_ad string ,_bb ...interface{});
21+
IsLogLevel (_dc LogLevel )bool ;};
2322

24-
// DummyLogger does nothing.
25-
type DummyLogger struct{};
23+
// Info logs info message.
24+
func (_gg ConsoleLogger )Info (format string ,args ...interface{}){if _gg .LogLevel >=LogLevelInfo {_dd :="\u005bI\u004e\u0046\u004f\u005d\u0020";_gg .output (_a .Stdout ,_dd ,format ,args ...);};};
2625

27-
// Warning does nothing for dummy logger.
28-
func (DummyLogger )Warning (format string ,args ...interface{}){};
26+
// Warning logs warning message.
27+
func (_dcg WriterLogger )Warning (format string ,args ...interface{}){if _dcg .LogLevel >=LogLevelWarning {_be :="\u005b\u0057\u0041\u0052\u004e\u0049\u004e\u0047\u005d\u0020";_dcg .logToWriter (_dcg .Output ,_be ,format ,args ...);};};
2928

3029
// IsLogLevel returns true if log level is greater or equal than `level`.
3130
// Can be used to avoid resource intensive calls to loggers.
32-
func (_da WriterLogger )IsLogLevel (level LogLevel )bool {return _da .LogLevel >=level };
31+
func (_bf ConsoleLogger )IsLogLevel (level LogLevel )bool {return _bf .LogLevel >=level };const _ab =2025;
3332

34-
// UtcTimeFormat returns a formatted string describing a UTC timestamp.
35-
func UtcTimeFormat (t _f .Time )string {return t .Format (_eg )+"\u0020\u0055\u0054\u0043"};func (_cg ConsoleLogger )output (_ee _bdc .Writer ,_ga string ,_edf string ,_edd ...interface{}){_efe (_ee ,_ga ,_edf ,_edd ...);};var Log Logger =DummyLogger {};
36-
const _dfa =26;
33+
// DummyLogger does nothing.
34+
type DummyLogger struct{};
3735

38-
// Debug logs debug message.
39-
func (_df ConsoleLogger )Debug (format string ,args ...interface{}){if _df .LogLevel >=LogLevelDebug {_gg :="\u005b\u0044\u0045\u0042\u0055\u0047\u005d\u0020";_df .output (_bd .Stdout ,_gg ,format ,args ...);};};
36+
// WriterLogger is the logger that writes data to the Output writer
37+
type WriterLogger struct{LogLevel LogLevel ;Output _gf .Writer ;};
4038

41-
// Debug does nothing for dummy logger.
42-
func (DummyLogger )Debug (format string ,args ...interface{}){};
39+
// Warning logs warning message.
40+
func (_ba ConsoleLogger )Warning (format string ,args ...interface{}){if _ba .LogLevel >=LogLevelWarning {_faa :="\u005b\u0057\u0041\u0052\u004e\u0049\u004e\u0047\u005d\u0020";_ba .output (_a .Stdout ,_faa ,format ,args ...);};};const _ef =15;
4341

44-
// LogLevel is the verbosity level for logging.
45-
type LogLevel int ;
42+
// Error logs error message.
43+
func (_fce WriterLogger )Error (format string ,args ...interface{}){if _fce .LogLevel >=LogLevelError {_gdc :="\u005b\u0045\u0052\u0052\u004f\u0052\u005d\u0020";_fce .logToWriter (_fce .Output ,_gdc ,format ,args ...);};};
4644

47-
// WriterLogger is the logger that writes data to the Output writer
48-
type WriterLogger struct{LogLevel LogLevel ;Output _bdc .Writer ;};const _gc =2025;const _aa =30;
45+
// Trace logs trace message.
46+
func (_gbf WriterLogger )Trace (format string ,args ...interface{}){if _gbf .LogLevel >=LogLevelTrace {_fgc :="\u005b\u0054\u0052\u0041\u0043\u0045\u005d\u0020";_gbf .logToWriter (_gbf .Output ,_fgc ,format ,args ...);};};var Log Logger =DummyLogger {};
4947

50-
// IsLogLevel returns true if log level is greater or equal than `level`.
51-
// Can be used to avoid resource intensive calls to loggers.
52-
func (_ede ConsoleLogger )IsLogLevel (level LogLevel )bool {return _ede .LogLevel >=level };
5348

54-
// SetLogger sets 'logger' to be used by the unidoc unipdf library.
55-
func SetLogger (logger Logger ){Log =logger };
49+
// UtcTimeFormat returns a formatted string describing a UTC timestamp.
50+
func UtcTimeFormat (t _cg .Time )string {return t .Format (_fbf )+"\u0020\u0055\u0054\u0043"};
5651

57-
// Debug logs debug message.
58-
func (_aca WriterLogger )Debug (format string ,args ...interface{}){if _aca .LogLevel >=LogLevelDebug {_bgc :="\u005b\u0044\u0045\u0042\u0055\u0047\u005d\u0020";_aca .logToWriter (_aca .Output ,_bgc ,format ,args ...);};};
52+
// Warning does nothing for dummy logger.
53+
func (DummyLogger )Warning (format string ,args ...interface{}){};const _fbf ="\u0032\u0020\u004aan\u0075\u0061\u0072\u0079\u0020\u0032\u0030\u0030\u0036\u0020\u0061\u0074\u0020\u0031\u0035\u003a\u0030\u0034";
54+
55+
// NewConsoleLogger creates new console logger.
56+
func NewConsoleLogger (logLevel LogLevel )*ConsoleLogger {return &ConsoleLogger {LogLevel :logLevel }};
5957

6058
// Info does nothing for dummy logger.
61-
func (DummyLogger )Info (format string ,args ...interface{}){};
59+
func (DummyLogger )Info (format string ,args ...interface{}){};func (_bab ConsoleLogger )output (_fcg _gf .Writer ,_gd string ,_gee string ,_eg ...interface{}){_gbg (_fcg ,_gd ,_gee ,_eg ...);};
6260

63-
// Notice logs notice message.
64-
func (_acg ConsoleLogger )Notice (format string ,args ...interface{}){if _acg .LogLevel >=LogLevelNotice {_cb :="\u005bN\u004f\u0054\u0049\u0043\u0045\u005d ";_acg .output (_bd .Stdout ,_cb ,format ,args ...);};};
61+
// LogLevel is the verbosity level for logging.
62+
type LogLevel int ;
6563

66-
// Warning logs warning message.
67-
func (_bg ConsoleLogger )Warning (format string ,args ...interface{}){if _bg .LogLevel >=LogLevelWarning {_bc :="\u005b\u0057\u0041\u0052\u004e\u0049\u004e\u0047\u005d\u0020";_bg .output (_bd .Stdout ,_bc ,format ,args ...);};};
64+
// IsLogLevel returns true if log level is greater or equal than `level`.
65+
// Can be used to avoid resource intensive calls to loggers.
66+
func (_cd WriterLogger )IsLogLevel (level LogLevel )bool {return _cd .LogLevel >=level };
6867

69-
// IsLogLevel returns true from dummy logger.
70-
func (DummyLogger )IsLogLevel (level LogLevel )bool {return true };
68+
// Info logs info message.
69+
func (_cf WriterLogger )Info (format string ,args ...interface{}){if _cf .LogLevel >=LogLevelInfo {_fb :="\u005bI\u004e\u0046\u004f\u005d\u0020";_cf .logToWriter (_cf .Output ,_fb ,format ,args ...);};};
7170

7271
// Error logs error message.
73-
func (_bdb ConsoleLogger )Error (format string ,args ...interface{}){if _bdb .LogLevel >=LogLevelError {_acf :="\u005b\u0045\u0052\u0052\u004f\u0052\u005d\u0020";_bdb .output (_bd .Stdout ,_acf ,format ,args ...);};};const _cgg =15;
72+
func (_ge ConsoleLogger )Error (format string ,args ...interface{}){if _ge .LogLevel >=LogLevelError {_cc :="\u005b\u0045\u0052\u0052\u004f\u0052\u005d\u0020";_ge .output (_a .Stdout ,_cc ,format ,args ...);};};
7473

75-
// Error does nothing for dummy logger.
76-
func (DummyLogger )Error (format string ,args ...interface{}){};var ReleasedAt =_f .Date (_gc ,_adea ,_dfa ,_cgg ,_aa ,0,0,_f .UTC );func _efe (_cag _bdc .Writer ,_ae string ,_ff string ,_ade ...interface{}){_ ,_fgb ,_ebd ,_bdce :=_c .Caller (3);if !_bdce {_fgb ="\u003f\u003f\u003f";
77-
_ebd =0;}else {_fgb =_ab .Base (_fgb );};_af :=_a .Sprintf ("\u0025s\u0020\u0025\u0073\u003a\u0025\u0064 ",_ae ,_fgb ,_ebd )+_ff +"\u000a";_a .Fprintf (_cag ,_af ,_ade ...);};const (LogLevelTrace LogLevel =5;LogLevelDebug LogLevel =4;LogLevelInfo LogLevel =3;
78-
LogLevelNotice LogLevel =2;LogLevelWarning LogLevel =1;LogLevelError LogLevel =0;);const _adea =4;
74+
// Debug logs debug message.
75+
func (_gff WriterLogger )Debug (format string ,args ...interface{}){if _gff .LogLevel >=LogLevelDebug {_ffa :="\u005b\u0044\u0045\u0042\u0055\u0047\u005d\u0020";_gff .logToWriter (_gff .Output ,_ffa ,format ,args ...);};};const _bbg =5;
7976

80-
// Info logs info message.
81-
func (_ad WriterLogger )Info (format string ,args ...interface{}){if _ad .LogLevel >=LogLevelInfo {_edg :="\u005bI\u004e\u0046\u004f\u005d\u0020";_ad .logToWriter (_ad .Output ,_edg ,format ,args ...);};};const Version ="\u0033\u002e\u0036\u0039\u002e\u0030";
77+
// Debug logs debug message.
78+
func (_gbe ConsoleLogger )Debug (format string ,args ...interface{}){if _gbe .LogLevel >=LogLevelDebug {_ebe :="\u005b\u0044\u0045\u0042\u0055\u0047\u005d\u0020";_gbe .output (_a .Stdout ,_ebe ,format ,args ...);};};
8279

80+
// Debug does nothing for dummy logger.
81+
func (DummyLogger )Debug (format string ,args ...interface{}){};
8382

84-
// Error logs error message.
85-
func (_ba WriterLogger )Error (format string ,args ...interface{}){if _ba .LogLevel >=LogLevelError {_ce :="\u005b\u0045\u0052\u0052\u004f\u0052\u005d\u0020";_ba .logToWriter (_ba .Output ,_ce ,format ,args ...);};};
83+
// Notice logs notice message.
84+
func (_fe ConsoleLogger )Notice (format string ,args ...interface{}){if _fe .LogLevel >=LogLevelNotice {_fed :="\u005bN\u004f\u0054\u0049\u0043\u0045\u005d ";_fe .output (_a .Stdout ,_fed ,format ,args ...);};};const _ce =30;
8685

87-
// Info logs info message.
88-
func (_fbd ConsoleLogger )Info (format string ,args ...interface{}){if _fbd .LogLevel >=LogLevelInfo {_ge :="\u005bI\u004e\u0046\u004f\u005d\u0020";_fbd .output (_bd .Stdout ,_ge ,format ,args ...);};};
86+
// ConsoleLogger is a logger that writes logs to the 'os.Stdout'
87+
type ConsoleLogger struct{LogLevel LogLevel ;};var ReleasedAt =_cg .Date (_ab ,_bbg ,_db ,_ef ,_ce ,0,0,_cg .UTC );
8988

90-
// Trace does nothing for dummy logger.
91-
func (DummyLogger )Trace (format string ,args ...interface{}){};
89+
// Notice does nothing for dummy logger.
90+
func (DummyLogger )Notice (format string ,args ...interface{}){};
9291

93-
// Trace logs trace message.
94-
func (_cf WriterLogger )Trace (format string ,args ...interface{}){if _cf .LogLevel >=LogLevelTrace {_dad :="\u005b\u0054\u0052\u0041\u0043\u0045\u005d\u0020";_cf .logToWriter (_cf .Output ,_dad ,format ,args ...);};};
92+
// SetLogger sets 'logger' to be used by the unidoc unipdf library.
93+
func SetLogger (logger Logger ){Log =logger };
9594

96-
// Notice does nothing for dummy logger.
97-
func (DummyLogger )Notice (format string ,args ...interface{}){};func (_gaf WriterLogger )logToWriter (_ca _bdc .Writer ,_cba string ,_dc string ,_dfc ...interface{}){_efe (_ca ,_cba ,_dc ,_dfc );};
95+
// NewWriterLogger creates new 'writer' logger.
96+
func NewWriterLogger (logLevel LogLevel ,writer _gf .Writer )*WriterLogger {_cgff :=WriterLogger {Output :writer ,LogLevel :logLevel };return &_cgff ;};const Version ="\u0034\u002e\u0030.\u0030";func _gbg (_bc _gf .Writer ,_bdbb string ,_ed string ,_ac ...interface{}){_ ,_ec ,_eca ,_ged :=_f .Caller (3);
97+
if !_ged {_ec ="\u003f\u003f\u003f";_eca =0;}else {_ec =_g .Base (_ec );};_ded :=_c .Sprintf ("\u0025s\u0020\u0025\u0073\u003a\u0025\u0064 ",_bdbb ,_ec ,_eca )+_ed +"\u000a";_c .Fprintf (_bc ,_ded ,_ac ...);};
9898

9999
// Trace logs trace message.
100-
func (_eda ConsoleLogger )Trace (format string ,args ...interface{}){if _eda .LogLevel >=LogLevelTrace {_fce :="\u005b\u0054\u0052\u0041\u0043\u0045\u005d\u0020";_eda .output (_bd .Stdout ,_fce ,format ,args ...);};};const _eg ="\u0032\u0020\u004aan\u0075\u0061\u0072\u0079\u0020\u0032\u0030\u0030\u0036\u0020\u0061\u0074\u0020\u0031\u0035\u003a\u0030\u0034";
100+
func (_cgf ConsoleLogger )Trace (format string ,args ...interface{}){if _cgf .LogLevel >=LogLevelTrace {_bd :="\u005b\u0054\u0052\u0041\u0043\u0045\u005d\u0020";_cgf .output (_a .Stdout ,_bd ,format ,args ...);};};
101101

102+
// Error does nothing for dummy logger.
103+
func (DummyLogger )Error (format string ,args ...interface{}){};const _db =9;
102104

103-
// NewWriterLogger creates new 'writer' logger.
104-
func NewWriterLogger (logLevel LogLevel ,writer _bdc .Writer )*WriterLogger {_fd :=WriterLogger {Output :writer ,LogLevel :logLevel };return &_fd ;};
105-
106-
// Logger is the interface used for logging in the unipdf package.
107-
type Logger interface{Error (_bb string ,_d ...interface{});Warning (_e string ,_fc ...interface{});Notice (_fg string ,_ed ...interface{});Info (_ef string ,_eb ...interface{});Debug (_g string ,_fa ...interface{});Trace (_ac string ,_ea ...interface{});
108-
IsLogLevel (_fb LogLevel )bool ;};
105+
// Trace does nothing for dummy logger.
106+
func (DummyLogger )Trace (format string ,args ...interface{}){};
109107

110-
// NewConsoleLogger creates new console logger.
111-
func NewConsoleLogger (logLevel LogLevel )*ConsoleLogger {return &ConsoleLogger {LogLevel :logLevel }};
108+
// Notice logs notice message.
109+
func (_bdb WriterLogger )Notice (format string ,args ...interface{}){if _bdb .LogLevel >=LogLevelNotice {_dee :="\u005bN\u004f\u0054\u0049\u0043\u0045\u005d ";_bdb .logToWriter (_bdb .Output ,_dee ,format ,args ...);};};

common/license/license.go

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,30 +10,30 @@
1010
// terms that can be accessed at https://unidoc.io/eula/
1111

1212
// Package license helps manage commercial licenses and check if they are valid for the version of unipdf used.
13-
package license ;import _e "github.com/unidoc/unipdf/v3/internal/license";
13+
package license ;import _ed "github.com/unidoc/unipdf/v4/internal/license";
1414

1515
// LicenseKey represents a loaded license key.
16-
type LicenseKey =_e .LicenseKey ;
16+
type LicenseKey =_ed .LicenseKey ;
1717

1818
// SetLicenseKey sets and validates the license key.
19-
func SetLicenseKey (content string ,customerName string )error {return _e .SetLicenseKey (content ,customerName );};
19+
func SetLicenseKey (content string ,customerName string )error {return _ed .SetLicenseKey (content ,customerName );};
20+
21+
// GetMeteredState checks the currently used metered document usage status,
22+
// documents used and credits available.
23+
func GetMeteredState ()(_ed .MeteredStatus ,error ){return _ed .GetMeteredState ()};const (LicenseTierUnlicensed =_ed .LicenseTierUnlicensed ;LicenseTierCommunity =_ed .LicenseTierCommunity ;LicenseTierIndividual =_ed .LicenseTierIndividual ;LicenseTierBusiness =_ed .LicenseTierBusiness ;
24+
);func SetMeteredKeyUsageLogVerboseMode (val bool ){_ed .SetMeteredKeyUsageLogVerboseMode (val )};
25+
26+
// GetLicenseKey returns the currently loaded license key.
27+
func GetLicenseKey ()*LicenseKey {return _ed .GetLicenseKey ()};
2028

2129
// SetMeteredKey sets the metered API key required for SaaS operation.
2230
// Document usage is reported periodically for the product to function correctly.
23-
func SetMeteredKey (apiKey string )error {return _e .SetMeteredKey (apiKey )};func SetMeteredKeyUsageLogVerboseMode (val bool ){_e .SetMeteredKeyUsageLogVerboseMode (val )};const (LicenseTierUnlicensed =_e .LicenseTierUnlicensed ;LicenseTierCommunity =_e .LicenseTierCommunity ;
24-
LicenseTierIndividual =_e .LicenseTierIndividual ;LicenseTierBusiness =_e .LicenseTierBusiness ;);
31+
func SetMeteredKey (apiKey string )error {return _ed .SetMeteredKey (apiKey )};
2532

2633
// SetMeteredKeyPersistentCache sets the metered License API Key persistent cache.
2734
// Default value 'true', set to `false` will report the usage immediately to license server,
2835
// this can be used when there's no access to persistent data storage.
29-
func SetMeteredKeyPersistentCache (val bool ){_e .SetMeteredKeyPersistentCache (val )};
30-
31-
// GetMeteredState checks the currently used metered document usage status,
32-
// documents used and credits available.
33-
func GetMeteredState ()(_e .MeteredStatus ,error ){return _e .GetMeteredState ()};
36+
func SetMeteredKeyPersistentCache (val bool ){_ed .SetMeteredKeyPersistentCache (val )};
3437

3538
// MakeUnlicensedKey returns a default key.
36-
func MakeUnlicensedKey ()*LicenseKey {return _e .MakeUnlicensedKey ()};
37-
38-
// GetLicenseKey returns the currently loaded license key.
39-
func GetLicenseKey ()*LicenseKey {return _e .GetLicenseKey ()};
39+
func MakeUnlicensedKey ()*LicenseKey {return _ed .MakeUnlicensedKey ()};

0 commit comments

Comments
 (0)