pdf first page to image c# : Add fields to pdf form software Library dll winforms .net azure web forms arnold1-part1484

erate the supplemental files the DocBook tools expect for processing these docu-
ment elements.
2.2.1 Bibliography
If you use BibTeX in your LaTeX workflow, you can generate an XML version of
your BibTeX database. DocBook processing tools can then combine that database
with your DocBook document to create the bibliography on the fly. One tool that
can converts BibTeX to XML (among other things) is JabRef, see section5 for a
link.
2.2.2 Cross References
Cross references are rendered directly in the document as xref elements. Further-
more, an external xref database is generated. DocBook processing tools use this
database to resolve cross references across documents.
2.2.3 Index
Index terms are rendered directly in the document. DocBook processing tools
automatically create an index for your document on the fly.
2.2.4 Mathematics
plasTeX uses both the rendered image and the LaTeX source when representing
mathematics in DocBook. For example, an inline equation such as x+ y =
1
z
would be converted to the following docbook element:
<inlineequation>
<inlinemediaobject remap="math">
<imageobject>
<imagedata role="math" fileref="image002.png"" />
</imageobject>
<textobject role="tex">
<phrase>x+y=\frac{1}{z}</phrase>
</textobject>
</inlinemediaobject>
11
Add fields to pdf form - C# PDF Field Edit Library: insert, delete, update pdf form field in C#.net, ASP.NET, MVC, Ajax, WPF
Online C# Tutorial to Insert, Delete and Update Fields in PDF Document
add text fields to pdf; create a pdf form to fill out
Add fields to pdf form - VB.NET PDF Field Edit library: insert, delete, update pdf form field in vb.net, ASP.NET, MVC, Ajax, WPF
How to Insert, Delete and Update Fields in PDF Document with VB.NET Demo Code
changing font in pdf form; add image field to pdf form
</inlineequation>
Adocument that uses this system validates against the DocBook DTD, and yet
postprocessing extensions have easy access to the original LaTeX mathematics.
2.3 Other Formats
In addition to the HTML and DocBook XML renderers, the following renderers
are also available:
Text renders LaTeX to plain text in the specified encoding. For example, the ren-
dered output of the first part of section2 from this document is as follows:
2 Usage Details
To get started with plasTeX, you need the following:
* Python distribution 2.4 or later
* plasTeX distribution
* Python Imaging Library
* LaTeX distribution.
Figure 7: Text Renderer Output
ManPage renders LaTeX to the UNIX man page format, which can then be dis-
played with the commands groff or nroff.
S5 renders your LaTeX document (Beamer class only) to S5 output. S5 is a
standards-based slideshow system.
Braille renders LaTeX documents to Braille. This format is not bundled with
plasTeX distribution but is available as BrlTex on the web. See the BrlTeX
entry in section5 for details.
12
C# PDF Form Data Read Library: extract form data from PDF in C#.
Add necessary references: RasterEdge.Imaging.Basic.dll. C#.NET Demo Code: Retrieve All Form Fields from a PDF File in C#.NET.
change font size pdf fillable form; add form fields to pdf
VB.NET PDF Form Data Read library: extract form data from PDF in
Add necessary references: RasterEdge.Imaging.Basic.dll. using RasterEdge.XDoc.PDF; Demo Code to Retrieve All Form Fields from a PDF File in VB.NET.
pdf form save with reader; adding a signature to a pdf form
Direct to XML not a true renderer, but a representation of your document in plas-
TeX’s internal XML format. This representation can be useful to review if
you encounter problems in rendering.
Producing this output format requires a slight modification of the plastex
command line script: uncomment the following lines in the script and run
plastex again.
## Write XML dump
#outfile = ’%s.xml’ % jobname
#open(outfile,’w’).write(document.toXML().encode(’utf-8’))
An XML file is created that displays the structure of the document. The
following LaTeX markup used in this document to display Figure6
\begin{figure}[H]
\includegraphics[width=\textwidth{dbk}
\caption{DocBook XML Output}\label{fig:docbook}
\end{figure}
has the following internal representation:
<par id="a0000000909">
<figure id="a0000000910">
<plastex:arg name="loc">H</plastex:arg>
<par id="a0000000911">
<includegraphics style="width:5in" id="a0000000912">
<plastex:arg name="options">{u’width’:u’5in’}</plastex:arg>
<plastex:arg name="file">dbk</plastex:arg>
</includegraphics>
</par>
<par id="a0000000913">
<caption ref="4" id="fig:docbook">
<plastex:arg name="toc" />
<plastex:arg name="self">DocBook XML Output</plastex:arg>
</caption>
</par>
<par id="a0000000914">
13
C# PDF insert image Library: insert images into PDF in C#.net, ASP
Insert images into PDF form field. Access to freeware download and online C#.NET class source code. How to insert and add image, picture, digital photo, scanned
pdf form change font size; add an image to a pdf form
VB.NET PDF insert image library: insert images into PDF in vb.net
Add images to any selected PDF page in VB.NET. Ability to put image into defined location on PDF page. Insert images into PDF form field in VB.NET.
adding text field to pdf; chrome pdf save form data
<label id="a0000000915">
<plastex:arg name="label">fig:docbook</plastex:arg>
</label>
</par>
</figure>
</par>
3 Customizing plasTeX
3.1 Process Overview
plasTeX might need modification to convert documents thatcontain custom macros,
complex macros, or macros that have no mapping to the output format. The three
tasks in creating the output are parsing, rendering, and imaging. Each task is de-
scribed as follows.
To convert a LaTeX document, plasTeX must first tokenize and parse the
source. It understands how to do this for each document element from the corre-
sponding Python class definitions. plasTeX finds these definitions in its standard
path and the locations defined in the environment variable PYTHONPATH.
Next, plasTeX hands off the resulting data structure (DOM) to the renderer.
The rendering templates must display (or more correctly, mark up) the document
elements for the intended output format. plasTeX finds these templates in its stan-
dard path and the locations defined in the environment variables XHTMLTEMPLATES
and DocBookTEMPLATES.
Finally, for any elements that must be handled externally (that is, by the im-
ager), plasTeX hands off an internally produced images.tex file to the configured
imager, which employs LaTeX itself. plasTeX finds the necessary files by using
the kpsewhich command and the locations defined in the environment variable
TEXINPUTS.
Thus, the sequence of tasks to customize plasTeX is as follows.
1. write class definitions for your new commands or environments. Set the
environment variable PYTHONPATH to include the location of your class def-
initions. Also, see section3.2.1 which describes a fallback mechanism that
you can use to redefine simple macros in LaTeX itself.
14
VB.NET PDF Password Library: add, remove, edit PDF file password
passwordSetting.IsAnnot = True ' Allow to fill form. passwordSetting document. passwordSetting.IsAssemble = True ' Add password to PDF file. PDFDocument
changing font size in a pdf form; build pdf forms
C# PDF Password Library: add, remove, edit PDF file password in C#
passwordSetting.IsAnnot = true; // Allow to fill form. passwordSetting document. passwordSetting.IsAssemble = true; // Add password to PDF file. PDFDocument
can save pdf form data; convert word doc to pdf with editable fields
2. Write templates that correspond to your new commands or environments.
Set the environment variable XHTMLTEMPLATES (or DocBookTEMPLATES for the
DocBook renderer) to include the location of the templates.
3. Confirm that LaTeX can find the packages necessary to create the images.
If the kpsewhich command cannot find the packages automatically, set the
environment variable TEXINPUTS to include the location. Note that plasTeX
typically handles imaging automatically when a standard LaTeX distribu-
tion is installed.
3.2 Parsing Details
The goal in this stage of customization is to enable plasTeX to recognize and
correctly parse commands and environments that it encounters in the source doc-
ument.
The parsing task usually involves Python classes, because when a source docu-
ment loads a package, plasTeX first looks in the PYTHONPATH environment variable
for a Python module of the same name. For example, if the package loaded is
mylocals, plasTeX checks for a Python file mylocals.py. However, if it does not
find that file, it falls back to the LaTeX packages by using the kpsewhich command
to find a package called mylocals.sty.
These two alternatives lead to the two possible methods of parser customiza-
tion.
– Create a simplified version of the original LaTeX macro that plasTeX uses
(LaTeX uses the more complex version).
– Implement the macro as a Python class.
3.2.1 Conditional LaTeX Macros
The simplest customization method is to modify the LaTeX macro with condi-
tional processing. That is, create a simplified version of the macro by using the
\ifplastex command. The command is built into plasTeX; during the plasTeX
processing the command is set to true and typically invokes simpler instructions
than those used when LaTeX processes the document.
15
.NET PDF Document Viewing, Annotation, Conversion & Processing
Form Process. Fill in form data programmatically. Read form data from PDF form file. Add, Update, Delete form fields programmatically. Document Protect.
create a fillable pdf form online; pdf form creation
C# PDF Library SDK to view, edit, convert, process PDF file for C#
PDF SDK for .NET allows you to read, add, edit, update, and delete PDF file use RasterEdge PDF SDK for .NET to insert, delete and update PDF form fields in C#
best pdf form creator; change font in pdf form
In the following example
2
, suppose you have a local LaTeX package called
mylocals.sty which defines a new command \foo that takes a single argument.
\newcommand{\foo}[1]{
\ifplastex\else\vspace*{0.25in}\fi
\textbf{\Large{#1}}
\ifplastex\else\vspace*{1in}\fi
}
In the LaTeX version the \foo command inserts some vertical space before
and after the argument, which it typesets in bold at a Large size. The plasTeX
version bypasses the vertical space commands but retains the typesetting of the
argument. With the macro so defined, plasTeX will recognize and correctly parse
the \foo command.
Suppose that mylocals.sty also defines a new environment called mybox.
\ifplastex
\newenvironment{mybox}{}{}
\else
\newenvironment{mybox}
{\fbox\bgroup\begin{minipage}{5in}}
{\end{minipage}\egroup}
\fi
In the plasTeX version, the environment is merely defined and no action is taken;
in the LaTeX version a box is set around a minipage. With this information,
plasTeX can now parse the environment correctly. It can then be displayed by the
renderer (perhaps to put a box around the contents).
In this example, the separation of tasks can be clearly seen. The LaTeX code
handles both the parsing knowledge and the appearance; the plasTeX code sepa-
rates the tasks into the macro definition seen here (parsing knowledge) and the
rendering template (appearance), which is described in section3.3.
2. The examples presented in this paper are simple enough that plasTeX could parse and render
them correctly with no additional effort. They are presented here only as learning examples.
16
3.2.2 Class Definitions
The alternative to writing macros with conditional definitions is to write a Python
class that corresponds to the command or environment. This is the recommended
method for defining complex macros.
The plasTeX documentation describes in detail how to write methods or func-
tions to override plasTeX’s normal behavior or to add new behavior. For example,
you can define methods to manipulate the document structure, create and change
counters, and store data for use in postprocessing.
More commonly however, a new macro requires normal parsing behavior. The
only requirement for parsing the new macro is to define the macro’s signature
(that is, specify the options and arguments that the macro takes). The args vari-
able in the class definition specifies this information. You can specify any number
of optional arguments and mandatory arguments.
To indicate that an argument is optional, surround the optional arguments
with matching square brackets([]), angle brackets (<>), or parentheses (()), just as
it is written in the LaTeX source. The following list describes some examples:
args = ’title’ specifies a single mandatory argument named title.
args = ’id title’ specifies two mandatory arguments named id and title.
args = ’[toc] title’ specifies an optional argument named toc and a single
mandatory argument named title.
args = ’[options:dict] title’ specifies anoptional listof keyword-value pairs
named options and a single mandatory argument named title.
After the arguments are parsed,they are set in the attributes dictionary of
the document element. These attributes can then be used in the rendering stage
as self/attributes/argumentname. plasTeX’s arg string provides a powerful
mechanism for quickly defining complex macros. The plasTeX documentation
has complete details with several examples.
To continue with the example described in the previous section, suppose that
the macro definitions remain as they were originally written (that is, without
using the \ifplastex command) and the plasTeX class definitions are written in
the Python class file (Python module) mylocals.py. The corresponding Python
code might look like this:
17
from plasTeX import Command, Environment
class foo(Command):
args = ’footext’
class mybox(Environment):
pass
The first line imports some of the basic plasTeX functionality—the founda-
tional classes Command and Environment. For many macros, you need little else
to teach plasTeX how to recognize and parse the new macros it encounters. With
the \foo command for example, you can tell plasTeX that this is a command with
asingle argument named footext. This argument name is used by the renderer
after the parsing stage. With the mybox environment, you define the macro as an
environment.
These definitions, written in mylocals.py, make up all the information plas-
TeX needs in order to recognize and parse the new command and new environ-
ment.
3.3 Rendering Details
Arenderer is a collection of templates
3
that take the data from the parsed docu-
ment and can display or markup each document element encountered.
Assuming that you have a CSS stylesheet for presentation, the following is one
possible template for producing HTML from the definitions given in the previous
section:
name: foo
<b class="Large" tal:content="self/attributes/footext"></b>
name: mybox
<blockquote class="mybox" tal:content="self"></blockquote>
The argument given in the \foo command is named footext in the class def-
inition and is available in the renderer as self/attributes/footext. It is placed
3. The default template engine is SimpleTal which is based on the Python package, Zope Page
Templates
18
inside a <b> element which will be displayed as bold in the final display. The
class="Large" attribute might correspond to a class defined in an accompanying
CSS file to render the contents at a larger than normal size.
The contents of the mybox environment is placed inside a blockquote element
with the class="mybox" possibly handling further display formatting via CSS.
3.4 Inheritance and Aliasing
Inheriting from the base plasTeX classes as shown in section3.2.2 is a fast and
powerful way to customize your own documents. Te previous example inherited
definitions and behavior directly from the Command and Environment classes. You
can also inherit from other plasTeX classes. Choose the class with behavior that
most closely resembles your custom macro. For example, suppose that you have
an environment in which you display program code (called Code) and it is to be
treated exactly as a verbatim block. You can quickly customize plasTeX with this
class:
class Code(verbatim):
pass
When the plasTeX parser encounters the Code environment, it looks up the
definition in the Python classes. The environment subclasses the verbatim en-
vironment, thereby inheriting all the properties needed for plasTeX to parse the
contents. No other code is necessary for plasTeX to recognize and parse your text.
The following lines in your template file exploit the power of template aliasing:
name: Code
alias: verbatim
When the plasTeX renderer encounters the Code environment, it finds the def-
inition in the templates file and renders it as if were a verbatim environment.
No other code is necessary to render the Code environment. Obviously this is a
simple example; however, the power of inheritance and aliasing even for compli-
cated macros significantly speeds the development of new macro packages and
renderers.
19
3.5 Creating Themes
Themes provide a powerful method to quickly change the look and feel of your
HTML or XML documents. Any template directory (a directory specified in the
XHTMLTEMPLATES or DocBookTEMPLATES environment variables) can contain muti-
ple themes. To create a theme, create a subdirectory called Themes which contains
adirectory of HTML or XML templates for each theme you want to provide. For
example, themes included in the plasTeX distribution for the HTML renderer
reside in the following directory structure:
XHTMLTEMPLATES/
Themes/
default/
minimal/
plain/
python/
Eachof the theme directories contains at least one file called default-layout.html.
To create your own themes, use the default/default-layout.html file as a guide.
4 Getting Involved
While the core parser and document builder are powerful and stable, there is
ample opportunity for users to contribute by testing and writing Python classes
to further support popular LaTeX packages, and renderers to new output formats.
The XHTML renderer is intended as the basis of all HTML-based renderers;
when writing a new HTML-based renderer, it can be subclassed to exploit the
power of inheritance. Even for completely different output formats the code in
the XHTML renderer can be used as a guide throughout development.
5 References
The following locations of software distributions and reference material can be
useful for finding further information.
plasTeX plastex.sourceforge.net
20
Documents you may be interested
Documents you may be interested