open pdf file in new window asp.net c# : Remove text watermark from pdf online control Library platform web page asp.net winforms web browser graphics1-part144

Reference
Point
Baseline
totalheight
height
depth
width
Figure1:SampleLAT
E
XBox
The size of eachbox x is s described d by y three lengths: : height, , depth, width. . The
height isthedistancefromthereferencepointtothetopofthebox. . Thedepth h is
thedistance fromthereference point to the bottomof the box. . The e width h isthe
widthofthebox. Thetotalheight t isdefinedasthedistancefromthebottomofthe
boxtothetopofthebox,ortotalheight=height+depth.
Thereferencepointofanon-rotated
eps
graphic is its lower-left corner (see left
box inFigure 2), giving it zero depth and making its totalheight equal its height.
The middle box inFigure2shows a rotated graphic where the height is not equal to
the totalheight. The right box inFigure2shows a rotated graphic where the height
is zero.
Reference
Point
width
height
width
depth
width
Graphics
Graphics
G
r
a
p
h
ic
s
height
depth
Figure 2: Rotated LAT
E
XBoxes
3 Encapsulated PostScript
The PostScript language describes both graphics and text. The PostScript language
is used in conventional PostScript (
ps
) files to describe multiple-page documents
and also in Encapsulated PostScript (
eps
) files to describe graphics for insertion
into documents. There are two main differences between
ps
and
eps
files
eps
files can contain only certain PostScript operators.
11
Remove text watermark from pdf online - delete, remove text from PDF file in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Allow C# developers to use mature APIs to delete and remove text content from PDF document
remove text from pdf online; how to delete text from a pdf in acrobat
Remove text watermark from pdf online - VB.NET PDF delete text library: delete, remove text from PDF file in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
VB.NET Programming Guide to Delete Text from PDF File
how to delete text in pdf converter; deleting text from a pdf
eps
files must contain a BoundingBox line which specifies the size of the
eps
graphic.
3.1 Forbidden PostScript Operators
Since
eps
graphics must share the page with other objects, the commands in an
eps
file cannot perform page operations such as selecting a page size (such as letter or
a4) or erasing the entire page with erasepage. The following PostScript operators
are not allowed in
eps
files:
a3
a4
a5
banddevice
clear
cleardictstack
copypage
erasepage
exitserver
framedevice
grestoreall
initclip
initgraphics
initmatrix
letter
legal
note
prenderbands
quit
renderbands
setdevice
setglobal
setpagedevice
setpageparams
setsccbatch
setshared
startjob
stop
Although the following PostScript operatorscan be used in
eps
files, they may cause
problems if not used properly.
nulldevice
setcolortransfer
setgstate
sethalftone
setmatrix
setscreen
settransfer
undefinedfont
Some of the above operators may cause the
dvi
-to-
ps
process to fail, while others
may cause strange problems such as graphics which are misplaced, invisible, or flash
on the screen. Since many of these operators do not affect the PostScript stack,
such problems can often be eliminated by simply deleting the offending PostScript
operator. Other cases may require complicated hacking of the PostScript code.
3.2 The EPS BoundingBox
By convention, the first line of a PostScript file specifies the type of PostScript
and is then followed by a series of comments called the header or preamble. (Like
LAT
E
X, PostScript’s comment character is %). One of these comments specifies the
BoundingBox. The BoundingBox line contains four integers
1. The x-coordinate of the lower-left corner of the BoundingBox.
2. The y-coordinate of the lower-left corner of the BoundingBox.
3. The x-coordinate of the upper-right corner of the BoundingBox.
4. The y-coordinate of the upper-right corner of the BoundingBox.
For example, the first 5 lines of an
eps
file created by gnuplot are
%!PS-Adobe-2.0 EPSF-2.0
%%Creator: gnuplot
%%DocumentFonts: Times-Roman
%%BoundingBox: 50 50 410 302
%%EndComments
Thus the gnuplot
eps
graphic has a lower-left corner with coordinates (50,50) and
an upper-right corner with coordinates (410,302). The BoundingBox parameters
have units of PostScript points which are 1/
72
of an inch, making the above graphic’s
natural width 5 inchesand its natural height 3.5 inches. Note that a PostScript point
is is slightly larger than a T
E
Xpoint, which is 1/
72.27
of an inch. In T
E
Xand LAT
E
X,
PostScript points are called “big points” and abbreviated bp while T
E
Xpoints are
called “points” and abbreviated pt.
12
C# PDF Page Delete Library: remove PDF pages in C#.net, ASP.NET
Free online C# class source code for deleting specified PDF pages in .NET console application. Able to remove a single page from PDF document.
delete text from pdf preview; online pdf editor to delete text
C# PDF Password Library: add, remove, edit PDF file password in C#
Support to add password to PDF document online or in C# String outputFilePath = Program.RootPath + "\\" Remove.pdf"; // Remove password in the input file and
acrobat remove text from pdf; pdf text watermark remover
3.3 Converting PS files to EPS
Single-page PostScript files without any improper commands can be converted to
eps
by using one of the following methods for adding a BoundingBox line. Since
these methods do not check for illegal PostScript operators, they do not
produce usable EPS files unless the PS files are free of forbidden operators.
1. The most convenient option is to use the ps2epsi utility distributed with
Ghostscript (seeSection6.1 on Page 17), which reads the PostScript file, cal-
culates the BoundingBox parameters, and creates an
eps
file (complete with
aBoundingBox) which contains the PostScript graphics.
The resulting file
eps
file is in
epsi
format, which means it contains an Inter-
change (low-resolution bitmapped) preview at the beginning of the file. Since
thispreview is
ascii
-encoded, it does not cause theSection4.1bufsize errors.
However, this
epsi
preview increases the file size.
2. Another method of having ghostscript calculate the BoundingBox parameters
is to use the epstool utility, available for Unix,
dos
,Windows, and OS/2 from
http://www.cs.wisc.edu/
~
ghost/gsview/epstool.htm
For example, the command
epstool --copy --bbox file1.eps file2.eps
analyzes the contents of file1.eps to determine the correct BoundingBoxand
then copies the contents of file1.eps with the calculated BoundingBox into
file2.eps.
The epstool utility can also be used to add
tiff
,
wmf
,
epsi
bitmap previews
to an
eps
file, or extract bitmap previews from an
eps
file.
3. Alternatively, the BoundingBox parameters can be calculated and manually
inserted in the PostScript file’s BoundingBox line or specified in the graphics-
insertion command (e.g., the \includegraphics command’sbb option). There
are several ways to calculate the BoundingBox parameters
(a) Use Ghostview/GSview to display the PostScript graphic. As the pointer
is moved around the graphic, the pointer’s coordinates (with respect to
the lower-left corner of the page) are displayed. To determine the Bound-
ingBoxparameters, record the pointer coordinates at the lower-left corner
of the graphic and the upper-right corner of the graphic.
(b) Print out a copy of the PostScript graphics and measure the horizontal
and vertical distances (in inches) from the lower-left corner of the paper
to the lower-left corner of the graphics. Multiply these measurements by
72 to get the BoundingBox’slower-left coordinates. Likewise, measure the
distances from the lower-left corner of the paper to the upper-right corner
of the graphics to get the BoundingBox’s upper-right coordinates.
(c) The bbfig script uses a PostScript printer to calculate the BoundingBox.
bbfig addssome PostScript commands to the beginning of the PostScript
file and sends it to the printer. At the printer, the added PostScript com-
mands calculate the BoundingBox of the original PostScript file, printing
the BoundingBox coordinates superimposed on the PostScript graphic.
The bbfig script is available from
CTAN/support/bbfig/
13
C# PDF bookmark Library: add, remove, update PDF bookmarks in C#.
Ability to remove and delete bookmark and outline entry.GetLocation()); Console.WriteLine("Text: " + entry.GetText NET Sample Code: Update PDF Document Outline
how to delete text in pdf acrobat; remove text watermark from pdf
C# PDF metadata Library: add, remove, update PDF metadata in C#.
Add metadata to PDF document in C# .NET framework program. Remove and delete metadata from PDF file. Also a PDF metadata extraction control.
erase pdf text; how to erase text in pdf
3.4 Fixing Non-standard EPS files
Some applications (such as Mathematica and FrameMaker) produce non-standard
eps
files which cannot be used in other programs such as LAT
E
X. Some of these ap-
plications have developed their own “improved” flavor of PostScript with additional
features, while other applications use poor PostScript programming. Often these
non-standard
eps
can be easily fixed by scripts provided byeither the software com-
panies themselves or by PostScript-savvy users. Check the software manufacturer’s
web page or search USENET groups associated with the software.
4 How EPS Files are Used by L
A
T
E
X
When processing a dvips-style document, the
eps
files are used by both L
A
T
E
Xand
the
dvi
-to-
ps
converter.
1. L
A
T
E
Xscans the
eps
file for the BoundingBoxline, which tells L
A
T
E
Xhow much
space to reserve for the graphic.
2. The
dvi
-to-
ps
converterthen reads the
eps
file and inserts the graphics in the
ps
file.
This has the following ramifications
• If the BoundingBoxparametersare specifiedin the graphics-insertioncommand
(e.g., the bb option of \includegraphics is used) then L
A
T
E
Xnever even reads
the
eps
file. In fact, the
eps
file does not even need to exist when L
A
T
E
Xis
run.
• Since T
E
Xcannot readnon-
ascii
filesandcannot spawn other programs,L
A
T
E
X
cannot read the BoundingBox information from compressed or non-
eps
graph-
ics files. In these cases, the BoundingBox parameters must be specified in the
graphics-insertion command (e.g., in the bb option of the \includegraphics
command) or stored in a non-compressed text file (seeSection14on Page 42).
• The
eps
graphics are not included in the
dvi
file. Since the
eps
files must
be present when the
dvi
file is converted to
ps
,the
eps
files must accompany
dvi
files whenever they are moved.
• The
eps
graphics may not appear in some
dvi
viewers. To help the user with
placement of the graphics,these
dvi
viewersgenerallydisplaythe BoundingBox
in which the graphics will be inserted.
4.1 Line Buffer Overflow
T
E
Xreads
ascii
files one line at a time, putting each line in its line buffer, which
is often about 3000 characters long. If any of the lines of the
eps
file is longer than
the line buffer, the following error is displayed
Unable to read an entire line--bufsize=3000.
Please ask a wizard to enlarge me.
Since
eps
rarely have lines longerthan 3000 characters, there are two possible causes
of such an error
1. The EPS file contains a long binary preview.
Some applications place a binary preview of the graphics at the beginning of
the
eps
file. This allows applications (such as
dvi
viewers) to display the
14
C# PDF url edit Library: insert, remove PDF links in C#.net, ASP.
Free online C# class source code for editing PDF hyperlink in Visual Studio .NET Easy to put link into specified position of PDF text, image and PDF table.
how to delete text in pdf file online; how to edit and delete text in pdf file online
C# PDF Convert to Word SDK: Convert PDF to Word library in C#.net
Quick to remove watermark and save PDF text, image, table, hyperlink and bookmark to Word Convert PDF to multiple MS Word formats such as .doc and .docx.
how to delete text in pdf converter professional; erase text from pdf file
graphics even though the application cannot interpret PostScript. Currently,
relatively few T
E
X-related applications use such previews.
If the binary preview is smaller than the line buffer, the \includegraphics
command skips over the preview
6
. However, the overfull bufsize error occurs
if the binary preview is larger than the line buffer. There are a couple work-
arounds for this problem
(a) If the preview won’t be used, the problem canbeavoided byeither deleting
it with a text editoror bypreventing the originalgraphicsapplicationfrom
creating the preview.
(b) Since LAT
E
Xreads the
eps
file to only obtain the BoundingBox parame-
ters, LAT
E
X does not read the
eps
file if the BoundingBox parameters
are provided by the graphics-insertion command (e.g., the bb option to
\includegraphics)
2. The file’s end-of-line characters are corrupted by an improper trans-
fer.
The following problem does not occur with most recent T
E
Xdistributions whose
versions of T
E
Xare smart enough to identify all end-of-line characters.
Different platforms use different end-of-line characters: Unix uses a line feed
character (^J), Macintosh uses a carriage return (^M), while
dos
/Windows
uses a carriage return and line feed pair (^M^J). For example, if an
eps
file is
transferred in binarymode from a Macintosh to a Unixmachine, the Unix T
E
X
doesn’t see any ^J end-of-line characters and thus thinks the entire file is one
big line, overfilling the line buffer.
If the
eps
file has no binarysections (e.g., no binary preview and no embedded
graphics) this problem can be avoided by transferring the
eps
file in text
mode. However,
eps
files with binary sections must be transferred with binary
mode, since the text mode transfer may corrupt the binary section. Since this
binary transfer does not translate the end-of-line characters, the BoundingBox
information must be provided by the graphics-insertion command (e.g., the bb
option to \includegraphics).
5 PDF Graphics
As mentioned earlier, pdfT
E
Xcan directly import the
pdf
,
png
,
jpeg
,and Meta-
Post graphic formats. This section provides a short description of these formats.
The commands for inserting these graphics into pdfLAT
E
Xare described inSection7
on Page 22.
5.1 JPEG
jpeg
is a compression standard authored by Joint Photographic Experts Group
(
jpeg
)Committee
http://www.jpeg.org/
6
Note that \psfig and other obsolete graphics commands did not have the ability to skip over
binary previews
15
C# PDF File Compress Library: Compress reduce PDF size in C#.net
NET framework. Remove bookmarks, annotations, watermark, page labels and article threads from PDF while compressing. C# class demo
delete text in pdf file online; delete text from pdf file
C# PDF Text Redact Library: select, redact text content from PDF
Edit Bookmark. Metadata: Edit, Delete Metadata. Watermark: Add Watermark to PDF. Call the Redact SDK API to remove or redact sensitive text that is visible
how to delete text from pdf reader; how to delete text from a pdf
The
jpeg
format is a compression standard for bitmap graphics which uses a lossy
7
compression scheme. In particular, its compression does not preserve lines and sharp
edges, making it poorly suited for line drawings and or graphics with sharp features.
5.2 PNG
For many years the
gif
format was the standard for compressed bitmaps for icons
and other line drawings, since its lossless
lzw
compression does not distort sharp
edges. Unisys’s enforcement of its
lzw
patent coupled with some
gif
technical
limitations (such a limit of 256 colors) spurred the development of the Portable
NetworkGraphics (PNG) format by a group eventuallycalled the
png
Development
Group
http://www.libpng.org/pub/png/
Like GIF, PNG uses lossless compression which is suitable for line drawings. While
png
can be used on any bitmap,
jpeg
’s lossy compression is often better than
png
for photographs and other bitmaps without sharp edges (where “better” means
producing smaller files without distortion noticeable by the naked eye).
5.3 PDF
Adobe’s Portable Document t Format t (
pdf
) shares many similarities to its Adobe
sibling PostScript. Like PostScript,
pdf
can contain text, vector drawings, and
bitmap drawings. A
pdf
file can contain an entire document orjust a single drawing
(similar to
eps
).
pdf
is not only the primary output format of pdfT
E
X, but
pdf
also is the most
common method for importing vector graphics into pdfT
E
X. Many graphics pro-
grams allow their graphics output to be directly saved in
pdf
format. Programs
without direct
pdf
output can instead output
eps
vector graphics which can be eas-
ily converted to
pdf
vector graphics by the epstopdf conversion program available
from
ctan
as a Windows executable or as a perl script for use on other platforms
such as Unix/Linux or MacOS X
CTAN/support/epstopdf/
5.4 MetaPost
MetaPost is a graphics language written by John Hobby that is based on Donald
Knuth’s metafont, but with the added capability of outputting PostScript. Infor-
mation about MetaPost is available from
http://www.tug.org/metapost.html
http://cm.bell-labs.com/who/hobby/MetaPost.html
and is documented in [23].
MetaPost can be used inn dvips-style LAT
E
Xdocuments and also can be used
directly
8
by pdfLAT
E
Xdocuments.
7
Lossy compression means that the compression process loses data. That is, decompresssing a
lossy-compressedbitmapdoes not produce the original bitmap. Conversely, no data is lost duringa
lossless compression, so decompressing a lossless-compressed bitmap produces the original bitmap.
8
pdfLAT
E
Xactually uses ConTeXt code by Hans Hagen to convert MetaPost graphics into
pdf
on-the-fly, however this is transparent to users.
16
C# HTML5 PDF Viewer SDK to create PDF document from other file
Image: Remove Image from PDF Page. Image: Copy, Paste Metadata: Edit, Delete Metadata. Watermark: Add Watermark to PDF. rotate PDF pages, C#.NET search text in PDF
delete text from pdf with acrobat; remove text watermark from pdf online
The following procedure uses the pstoedit utility along with MetaPost (mpost)
to convert an
eps
file named graphic.eps into a MetaPost file name graphic.mps
pstoedit -f mpost graphic.eps graphic.mp
mpost graphic.mp
rename graphic.1 graphic.mps
5.5 PurifyEPS
Scott Pakin’s purifyeps utility is able to convert many (but not all)
eps
to a
“purified” version that can be read by both LAT
E
Xand pdfLAT
E
X.
You need all of the following in order to run purifyeps:
PurifyEPS Available fromCTAN/support/purifyeps/ where CTAN/ should be re-
placed by any of the
ctan
sites listed on page3.
Perl Available fromhttp://www.cpan.org
pstoedit Available fromhttp://www.pstoedit.net/pstoedit
mpost from a LAT
E
Xdistribution that includes MetaPost.
6 Graphics Software
6.1 Ghostscript
Ghostscript is a PostScript/
pdf
interpreter which runs on most platforms and is
distributed for free
9
. This allows PostScript,
eps
, and
pdf
files to be displayed
on the screen and printed to both Postscript and non-PostScript printers. AFPL
Ghostscript is available from the Ghostscript home page
http://www.cs.wisc.edu/
~
ghost/
These sites contains pre-compiled Windows/
dos
/OS/2 and Macintosh executables,
along with ready-to-compile source code for Unix/
vms
. Also available are graphical
interfaces (such as GSview, Ghostview, GV, etc) for Ghostscript which makes the
viewing of PostScript much easier.
6.2 Graphics-Conversion Programs
The following freeware and shareware programs convert between graphics format.
In dvips-style documents, these programs can convert non-
eps
graphics to
eps
.In
pdfL
A
T
E
Xdocuments, these program can convert graphics to one of the supported
formats (
pdf
,
png
,
jpeg
). Some of the programs allow command-line conver-
sion which makes it possible to convert the graphics on-the-fly (seeSection14.2 on
Page 43).
9
Although AFPL Ghostscript (formerly known as Aladdin Ghostscript) is distributed for free,
it is not in the public domain. It is copyrighted and comes with certain limitations such as no
commercial distribution. When versions of Aladdin Ghostscript become approximately one year
old, Aladdinreleasesthemas “GNU Ghostscript” whose use is governed by the less-restrictive GNU
Public License.
17
ImageMagick
ImageMagick is a free open-source software suite to create, edit, and compose
bitmap images. It can read, convert and write images in a large variety of
formats. Images can be cropped, colors can be changed, various effects can be
applied, images can be rotated and combined, and text, lines, polygons, ellipses
and Bezier curves can be added to images and stretched and rotated.
For example, when ImageMagick’s convert is on the operating system path,
the following command
convert file.jpg file.eps
stores an
eps
version of file.jpg in file.eps.
Multiple files can be converted with the wildcard
convert *.gif images.png
creates
png
versions of all the
gif
files in the current directory and stores
them as
images-0.png
images-1.png
...
Saving the resulting
png
files with the same base filename as the original
gif
files is more involved since it requires writing a shell script or Windows batch
file.
ImageMagickrunson allmajoroperating systemsand Binariesand information
can be downloaded from
http://www.imagemagick.org/
GraphicsMagick
The ImageMagick interface periodically changes, causing incompatibility with
code that uses ImageMagick. As a result, the GraphicsMagick project was
started in November 2002 as a fork from ImageMagick 5.5.2, with the goal of
providing a set of graphics-conversion utilities with a stable interface and an
emphasis on fixing bugs over adding new features.
GraphicsMagick runs on Unix/Linux, Cygwin, MacOS X, and Windows. Bi-
naries and source code can be downloaded from
http://www.graphicsmagick.org/
NetPBM
NetPBM is a free open-source version of the now-unsupported PBMPLUS package.
NetPBM is a toolkit for manipulation of graphic images, including conversion of
images between a variety of different formats. There are over220 separate tools
in the package includingconvertersforabout 100graphicsformats. NetPBM uses
the commandline and doesn’t have a graphical interface.
Most Linux distributions and the Cygwin Project include NetPBM packages.
Binary distributions of NetPBM for Windows, MacOS X, and other operating
systems can be downloaded from
18
http://netpbm.sourceforge.net/
Irfanview
Irfanview is an excellent, easy-to-install graphic viewer for Windows that is
compact and fast. Irfanview supports viewing and converting between a wide
variety of file formats, and provides basic image editing (such as cropping,
resampling, color/brightness adjustments, etc). Irfanview supports both GUI
and commandline operation, including batch mode.
For example, when Irfanview’s executable i
view32.exe is on the Windows
path, the following command
i_view32 *.gif /convert=*.png
creates
png
versions of all the
gif
files in the current directory, storing them
in files with .png extensions and the same base name as the original
gif
files.
Irfanview can be downloaded from
http://www.irfanview.com/
Irfanview is freeware for personal, academic, and non-profit users. Commercial
users are asked to donate a $12 registration fee.
Graphic Converter
Graphic Converter is $30 shareware for Macintosh which reads about 190
graphic formats and exports about 75 formats. For information, see
http://www.lemkesoft.de/
WMF2EPS
WMF2EPS is a $20 shareware
wmf
-to-
eps
conversion program which runs on
Windows. It is available from
CTAN/nonfree/support/wmf2eps/
where CTAN/ should be replaced by any of the
ctan
sites listed on page3.
The software can also be downloaded from the WMF2EPS homepage
http://www.wmf2eps.de.vu/
Thehomepage alsoincludesotherinformation,including linksto Adobe-compatible
printer drivers (which is required for WMF2EPS).
KVEC
kvec
is shareware ($25 for non-commercial use, $50 forcommercial use) which
converts bitmap graphics (
bmp
,
gif
,
tiff
, etc) into PostScript and other
vector formats.
kvec
isavailable forWindows, OS/2, Linux, Unix, Macintosh,
and BeOS. More information is available at
http://www.kvec.de
19
xv
xv is an interactive image manipulation program for the X Window System.
While it has graphics-conversion capability, xv was designed for image manip-
ulation program and thus is not tailored for graphics conversion (for example,
it does not provide command-line capabilities so graphics must be one-by-one.
xv is $25 shareware for non-commercial use, with the $25 registration manda-
tory for commercial use. More information is available from
http://www.trilon.com/xv/xv.html
GIMP
gimp
(
gnu
Image Manipulation Program) is a freely available image ma-
nipulation program which duplicates much of the functionality of PhotoShop.
gimp
is available for Unix/Linux, Windows, and MacOSX. More information
is available at
http://www.gimp.org/
6.3 Level 2 EPS Wrappers
Level 2 PostScript supports several compression schemes, including DCT (used in
jpeg
files) and
lzw
(used in many
tiff
files). Additionally, this binary data can
be
ascii
-encoded as
ascii
85 or
ascii
Hex (which produces
ascii
files which are
125% and 200%, respectively, of the original binary size). The fact that Level-2
eps
supports these compression schemes allows a Level-2
eps
file to be constructed as a
wrapper around a
jpeg
file or
tiff
file. This produces better quality and smaller
files thanconverting the graphicstoconventional
eps
.If one has a Level 2PostScript
printer, it is better to use the following wrapper programs instead of the conversion
programs listed above. Since the resulting PostScript files can only be printed on
Level 2 printers, the documents are less portable.
Note that, by default, dvips strips the comment lines (those lines which begin
with %%) from anyincluded
eps
graphics. Since
ascii
85-encoded level-2 graphicscan
have lines beginning with %%, users including
ascii
85-encoded level-2
eps
files must
use the dvips -K0 (K followed by a zero) option to prevent dvips from stripping
comment lines. Note
ascii
Hex level-2 encoding does not have this problem.
jpeg2ps
A
jpeg
graphic can be converted to level 2 PostScript by the C program
jpeg2ps, which can be compiled Unix,
dos
,and other systems. jpeg2ps is
available from
CTAN/nonfree/support/jpeg2ps/
http://www.pdflib.com/products/more/jpeg2ps.html
http://gnuwin32.sourceforge.net/packages/jpeg2ps.htm
where CTAN/ should be replaced by any of the
ctan
sites listed on page3.
jpeg2ps supports three types of level-2 encoding:
ascii
85 (default), 8-bit
binary (using jpeg2ps -b), or 7-bit
ascii
Hex (using jpeg2ps -h).
20
Documents you may be interested
Documents you may be interested