c# pdf library itextsharp : View pdf metadata application Library cloud html asp.net windows class Visual_CUT_User_Manual18-part522

©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 181 
Splitting Workbook & Inserting into a Template (faster method) 
If you need to burst one report and insert many resulting files into a template, 
XLS_Range_Insert_File_Split provides a faster process by processing a single Excel file as a 
source data and splitting it by the values in the first column of the spreadsheet.  
Expect speeds of about 8 files per second
Here is an example of how the command line argument is structured: 
"XLS_Range_Insert_File_Split:C:\TEMP\Template.xlsx::9500>> 
C:\TEMP\[1stColumnValue].xlsx>>c:\temp\DataSource.xls 
||Sheet1||B5||[Remove_Content_Top_Row]" 
The elements (after the "XLS_Range_Insert_File_Split:") are separated by a ">>" and are as 
follows: 
1. Template excel file followed by :: and the last data row number in the template file.   
2. Resulting excel file.  The [1stColumnValue] token is replaced by the value in the 1
st
column, 
allowing each resulting file to have a dynamically controlled path & name.  
3. Data source & insert instructions consisting of 4 "||" delimited elements: 
a) Excel (data Only) export file to be inserted (can be xls or xlsx) 
b)  Target sheet in template 
c)  Target cell in template 
d)  Options (may leave blank): 
[Remove_Content_Top_Row] skips the top row of the source data excel file. 
Keeping the Template File Small 
The template file must be populated by at least as many rows as in the largest set of inserted 
rows. The process removes surplus rows. Template files with less rows keep the process faster. 
You can use a Crystal formula in GF1 to establish the maximum rows in any group: 
NumberVar MaxRows; 
Local NumberVar GroupRows := Count ({Employee.Last Name}, {Employee.Last Name}); 
IF GroupRows > MaxRows Then MaxRows := GroupRows;
And in Visual CUT refer to a Report Footer formula to dynamically point the process at a 
differently sized template: 
NumberVar MaxRows; 
Select MaxRows 
Case is < 100: "C:\XLS_Range_Insert_File\Template99.xlsx::99"  
Case is < 991: "C:\XLS_Range_Insert_File\Template990.xlsx::990" 
Default: "C:\XLS_Range_Insert_File\Template9976.xlsx:9976"  ; 
Notes  
a)  The data in the 1
st
column is used only to drive the process (splitting and naming of the 
resulting files. It does not get inserted into the template. 
b)  This functionality is currently available only in Visual CUT 11. 
c)  This functionality delegates some processing to DataLink Viewer 2011. The latest version 
must be installed on the same machine as Visual CUT. 
d)  Use Auto-Filter rather than Table in the template. 
View pdf metadata - add, remove, update PDF metadata in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Allow C# Developers to Read, Add, Edit, Update and Delete PDF Metadata
pdf metadata online; c# read pdf metadata
View pdf metadata - VB.NET PDF metadata library: add, remove, update PDF metadata in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Enable VB.NET Users to Read, Write, Edit, Delete and Update PDF Document Metadata
extract pdf metadata; batch pdf metadata editor
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 182 
e)  Summary formulas below the template data range should use INDIRECT() to refer to the last 
cell in a column.  For example:  
SUM(E5:INDIRECT("E" & ROW()-1)) instead of SUM(E5:E9776) 
f)  Save the template file with the selected cell at the top rather than the bottom of the sheet. 
Token Substitution 
If you wish to replace the text content of certain cells in the template with dynamic information 
from each data slice, you can do so by expanding the content of the 1
st
data column like this: 
Sales by Leverling^^[[Title]]->Leverling||[[Rows]]->46 
The first part, before the ^^ is the content that would drive the new file names using the 
[1stColumnValue] token.  
The following text is treated as From->To pairs, separated by || delimiters. 
Here is an image demonstrating the tokens being substituted: 
VB.NET PDF- View PDF Online with VB.NET HTML5 PDF Viewer
View PDF in WPF. Annotate PDF in WPF. Export PDF in to PDF. Image: Remove Image from PDF Page. Image Link: Edit URL. Bookmark: Edit Bookmark. Metadata: Edit, Delete
add metadata to pdf; pdf metadata viewer
VB.NET PDF Library SDK to view, edit, convert, process PDF file
Offer professional PDF document metadata editing APIs, using which VB.NET developers can redact, delete, view and save PDF metadata. PDF Document Protection.
read pdf metadata java; batch pdf metadata
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 183 
Inserting Crystal Values into Excel Templates  
Using a command line argument, you can instruct Visual CUT to replace named ranges inside 
MS Excel spreadsheets with values of formulas with matching names. The file can then be saved 
to a new dynamically named file and emailed as part of a bursting Visual CUT process. 
The advantage of this technique over directly exporting/bursting a Crystal report to excel 
spreadsheets is that you can keep and control all elements in the template spreadsheet. For 
example, the template spreadsheet may have formulas, conditional formatting, hidden 
columns, and macros.     
Here's an example of the command line argument structure: 
… 
"XLS_Range_Insert:c:\template.xls>>c:\target.xls" 
The arguments (after the "XLS_Range_Insert:") are separated by a ">>" and are as follows: 
1. The path & name of the template XLS file (containing named ranges).  
2. [optional] The path & name of the resulting XLS file.  If the command line specifies only a 
template file, that file will simply be updated.  
As always, the files path & name can contain dynamic references. For example: 
… 
"XLS_Range_Insert:C:\temp\Master.xls>>c:\temp\{Faculty.Faculty_Name}_{[yyyy]}.xls"  
Or, if the source file needs to be updated (without creating a new file: 
… 
"XLS_Range_Insert:c:\temp\{Faculty.Faculty_Name}_{[yyyy]}.xls" 
Specifying Named Ranges in the Excel Template and Matching Formulas in Crystal 
To create a named range in excel, simply select the cell(s) and type a name for the range in the 
cell address area above column A.  
To identify a formula in a Crystal report that should provide the value(s) for a named range, the 
formula name must start with VC_XLS_Range_Insert_  followed by the range name.   
For example, the formula VC_XLS_Range_Insert_Ref_J would insert values into a named 
range called Ref_J . 
Notes: 
- Visual CUT can handle named ranges even if they reside inside hidden tabs.  
Crystal’s formula string length is limited to 65,534 characters.
- In order for Visual CUT to recognize the value of the Crystal formula, it must be placed in: 
1. The Report Header or Footer or 
2. Group Header 1 or Group Footer 1 if the report is being burst by Visual CUT. 
The named ranges must have a Workbook scope. If you create a named range and then make 
a copy of the sheet within the same workbook, you will need to use the Name Manager within 
Excel to rename and se
t the scope of the named range to ‘Workbook’.
C# PDF Library SDK to view, edit, convert, process PDF file for C#
RasterEdge WPF PDF Viewer provides C# users abilities to view, annotate, convert and create PDF in WPF application. C#.NET: Edit PDF Metadata.
google search pdf metadata; batch update pdf metadata
VB.NET PDF - View PDF with WPF PDF Viewer for VB.NET
View PDF in WPF. Annotate PDF in WPF. Export PDF in to PDF. Image: Remove Image from PDF Page. Image Link: Edit URL. Bookmark: Edit Bookmark. Metadata: Edit, Delete
edit pdf metadata acrobat; add metadata to pdf file
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 184 
Crystal Formula Content for Multi-cell and multi-row Named Ranges 
For a single cell named range, the Crystal formula can simply return the desired text. 
For multiple cells in a single row named range, the formula value must be a strings delimited 
according to the following structure:  
- Multiple cells should be separated with a "||" delimiter. 
- Multiple rows should be separated with a "&&" delimiter  
The named range doesn’t need to have as many row cells as 
elements in the formula row. Visual 
CUT starts inserting cells in the left-most column of the named range and continues with as 
many cells there are in each formula row.   
The named range the template Excel spreadsheet should have at least 2 rows if the formula will 
provide more than one row of data.  Visual CUT will expand the named range to accommodate 
the number of rows. 
Blank cell values should be provided as [vc_null] 
Here is an example of this approach in the context of populating a named range (Ref_J) with 
faculty refereed journal publications.  The final formula simply returns the value of a global 
string variable that has been accumulated via other formulas: 
GH1 Formula to reset the global string variable: 
WhilePrintingRecords; 
Global stringvar Range_Values := "";
Detail Formula to accumulate the information into the Range_Values string variable: 
WhilePrintingRecords; 
Global stringvar Range_Values; 
Local StringVar New_Range_Values; 
Local stringvar ls_REF_J_Date; 
IF IsNull({REF_J.Date}) Then  
ls_REF_J_Date := "[vc_null]" 
else 
ls_REF_J_Date := {REF_J.Date};   
New_Range_Values :=  
{REF_J.Title} & "||" &  
{REF_J.Journal Name} & "||" & 
ls_REF_J_Date & "||" &   
"[vc_null]" & "||" &  
ls_REF_J_Points ;  
IF Len(Range_Values) = 0 Then 
Range_Values := New_Range_Values 
Else 
Range_Values := Range_Values & "&&" & New_Range_Values; 
C# WPF PDF Viewer SDK to view PDF document in C#.NET
WPF Viewer & Editor. WPF: View PDF. WPF: Annotate PDF. WPF: Export PDF. Bookmark: Edit Bookmark. Metadata: Edit, Delete Metadata. Watermark: Add Watermark to PDF
pdf metadata; pdf xmp metadata
How to C#: Modify Image Metadata (tag)
C#.NET edit PDF bookmark, C#.NET edit PDF metadata, C#.NET VB.NET How-to, VB.NET PDF, VB.NET Word, VB VB.NET Barcode Read, VB.NET Barcode Generator, view less.
delete metadata from pdf; embed metadata in pdf
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 185 
Group Footer Formula:  {@VC_XLS_Range_Insert_Ref_J
with a name matching the named range in the spreadsheet: 
WhilePrintingRecords; 
stringvar Range_Values;
Populating Multiple Named Ranges  
To populate multiple named ranges, you simply need to have multiple formulas in the Crystal 
report.  Each formula must be named (as explained above) to match the desired named range in 
the excel spreadsheet.  
Visual CUT loops through all named ranges in the excel workbook and, if it can find a matching 
Crystal report formula, it will undertake populating the range with the formula value(s).   
In some cases, the data for different named ranges may require formulas in different Crystal 
reports.  You can simply create a multi-line batch file that calls one report and populates some 
named ranges, and then calls another report to populate other named ranges.  
Notes: 
You can specify the final target file as the email attachment since the 
XLS_Range_Insert processing occurs before emailing. 
If you wish to protect the resulting file from user editing, you may also use 
XLS_Protect_Worksheets described in a previous section. 
After the process of populating the ranges, Visual CUT sets the resulting workbook to 
open to the original sheet and selection that were last set in the source workbook. 
C# TIFF: TIFF Metadata Editor, How to Write & Read TIFF Metadata
C#.NET. Allow Users to Read and Edit Metadata Stored in Tiff Image in C#.NET Application. C# Overview - View and Edit TIFF Metadata.
edit multiple pdf metadata; remove pdf metadata online
VB.NET PDF File Compress Library: Compress reduce PDF size in vb.
Document and metadata. All object data. File attachment. Flatten visible layers. VB.NET Demo Code to Optimize An Exist PDF File in Visual C#.NET Project.
online pdf metadata viewer; remove pdf metadata
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 186 
Before & After Images  
Here is what a portion of a template spreadsheet may look like  
with a named range (Ref_J) selected: 
And here is that same range in the resulting excel file after Visual CUT automatically populated 
and expanded it with data from the {@VC_XLS_Range_Insert_Ref_JCrystal formula: 
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 187 
Transferring Tabs To Another Workbook  
Using a command line argument, you can instruct Visual CUT to transfer tabs from one 
workbook to another and even rename the transferred tabs based on Crystal fields/formulas.  
This is particularly useful when bursting report information into named ranges in a template 
workbook, and then gathering the resulting tabs into a single workbook with multiple tabs. 
Here's an example of the command line argument structure: 
… 
"XLS_Transfer_Tabs:[c:\my.xls||Tab1::Tab2]>>[c:\{@WB}.xls}||{@Tab1}::{@Tab2}]" 
The arguments (after the XLS_Transfer_Tabs:) are grouped into two main parts, each 
surrounded by square brackets and separated by a ">>": 
1. The first part specifies the source excel workbook and, after a || delimiter, the list of tab names 
(separated by :: from each other) that should be transferred to the target workbook.   
2. The second part specifies the same information, but for the target workbook.  
Notes: 
a) 
The target tabs can specify different names than the source tabs.  Renaming occurs based 
on the position within the list of tabs. 
b) 
If the source workbook doe
sn’t exist, it gets created.
c) 
If a target tab already exists in the target workbook, it gets replaced. 
d) 
Since this argument executes after XLS_Range_Insert, the two processes can be chained 
into one command line. 
e) 
As always, the files path & name can contain dynamic references.  
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 188 
Splitting Excel Workbooks by Tabs 
Using a command line argument, you can instruct Visual CUT to split an Excel workbook so 
each tab becomes a separate PDF or Excel file.  
Here's an example of the command line argument structure: 
… 
"XLS_Split_Tabs:c:\my.xlsx||PDF||c:\new_[Tab_Name].pdf||Landscape||True" 
The parameters (after the ":") are separated by a "||" and are as follows: 
1. Source_WorkBook: path & name of the source excel file (e.g. c:\temp\Sales.xls)  
2. Target File Format: PDF or XLSX  
3. Target File: the path and name of the target file for each tab. The [Tab_Name] token 
gets replaced with the name of the tab. 
4. PDF Page Orientation: Landscape or Portrait 
5.  Ignore Print Areas: True (include all content) or False (include Print Areas Content) 
Notes: 
a) 
Blank/Hidden tabs and skipped 
b) 
If a target file for a given tab already exists, it gets replaced 
c) 
Missing folders for target files are created automatically 
d) 
For PDF format, the content of each tab gets fitted into a single PDF page 
e) 
As always, the argument may contain dynamic references to fields/formulas. 
for example: 
"XLS_Split_Tabs:c:\temp\Sales_in_{@Year_Parameter}.xlsx||PDF|| 
c:\temp\Sales_in_{@Year_Parameter}_for_[Tab_Name].pdf||Landscape||True" 
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 189 
Splitting Excel Workbooks by First Column 
Using a command line argument, you can instruct Visual CUT to split the first worksheet in an 
Excel Workbook so that the rows for each unique value found in the first column are split to 
a different workbook named based on the unique value.  
For example, the following spreadsheet would be split 
according to the unique values in the 1
st
column to create 2 
workbooks called: 
Job1.xlsx (with 3 rows) and  
Job2.xlsx (with 2 rows)  
The advantage over regular bursting is that the process  
is faster. 
Here's an example of the command line argument structure: 
… 
"XLS_Split_ByColumn:c:\my.xls||XLSX||c:\temp\||0||Replace||True||" 
"XLS_Split_ByColumn:c:\temp\Maintenance_Summary_Page_for_Split.xls||XLSX||c:\temp\test
3\||0||Replace||True||" 
The parameters (after the ":") are separated by a "||" and are as follows: 
1. Source_WorkBook: path & name of the source excel file (e.g. c:\temp\Sales.xls)  
2. Target File Format: XLSX  
3. Target Path: the path (ending with a '\') to where the split files would be created. The 
names of the generated workbooks are based on the values in the first column of the 
Source Workbook  
4. Number of Header Rows in the Source Workbook.   
note: can be 0 if the source workbook has no header rows.. 
5. Action if target spreadsheets exist: Replace or Append 
6.  Delete 1
st
Column?: True (delete it) or False (don't delete it) 
7.  Options:  
- include the text [AutoFit] if you want to AutoFit column widths in resulting workbooks. 
Notes: 
a) 
Header rows (based on item 4 above) are transferred to all target files. 
b) 
Missing target folder is created on the fly 
c) 
As always, the argument may contain dynamic references to fields/formulas. 
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 190 
Generating Excel Pivot Tables 
Visual CUT can automatically generate an Excel Pivot Table based on an existing or newly 
exported (Data Only) excel worksheet. This can be very valuable in cases where you want to 
give users an easy and familiar way to Slice & Dice the data.  
The command line argument structure is as follows: 
… 
"
XLS_Pivot_Table:Source_WorkBook>New_WorkBook>Tab>…
" 
The parameters (after the ":") are separated by a ">" and are as follows: 
1. Source_WorkBook: path & name of the source excel file (e.g. c:\temp\Sales.xls)  
2. New_WorkBook: path & name of file to create (e.g. c:\temp\Sales_and_Pivot.xlsx
if left blank, the Pivot table gets added as 1
st
tab in the existing WorkBook 
if the style argument is not blank, the destination file should have .xlsextension 
and the machine should have Excel 2007 or later.   
3. Tab: the sheet name in the source workbook where the data block is. Typically: 
Sheet1
4. Range Name: [Optional]. If blank, data with column headers is assumed to start at A1. 
5. Pivot/Tab Name: Pivot Table and New Worksheet Tab.   To Target an existing Tab, 
specify: PivotName||TabName||Cell_Address (for example, Pivot1||Sales||D20) 
6. Row Elements: field names separated by "||".  For example, "Country||City" would use 
Country as level 1 row group and City as level 2 row group 
7. Row Element Sort: a sort code for each row element specified above, separate by "||" 
for Ascending, D for Descending, N for No Sort 
T# for TopN (for example T7 for Top 7), B# for Botton(B12 for Bottom 12) 
Last element (after "||") must specify the CAPTION name of the Column Controlling the 
Sort (e.g., "Revenue"). For example: "T5||D||Revenue" would show Top 5 countries and 
within that cities in Descending order based on "Revenue" 
8. Column Elements: field names separated by "||".  ("Employee||Product Name")  
9. Column Element Sort: same logic as for Row Element Sort 
10. Page Filter Elements: field names separated by "||".  ("Product Class||Product Type")  
11. Data Elements: separated by "||" and providing 4 sub-elements separated by "::" 
1. Field name 
the column header from the raw data block (e.g. "Value") 
2. Caption - a user-friendly name. For example, "Revenue" 
3. Summary Type 
current options include: Sum, Count, Average, Max, Min, or Var  
4. Format String 
for example:  $#,##0,K or 0.0% 
For example: "Value::Revenue::Sum::$#,##0,K||Late::% Late::Average::0.0% " 
specifies 2 pivot table metrics. The ‘Revenue’ metric is a sum
of the Value field, and is  
formatted as thousands of dollars.  The ‘% Late’ metric is an average of the 
Late field 
and is formatted as percent.   
12. Show Grand Totals: "Both", "None", "Rows", or "Columns
13. Show Subtotals: "None", "Bottom ", or "Top
14. Style: same style names as in Excel, but without spaces (e.g. "PivotStyleMedium23
15. Show Bands: "Both", "None", "Rows", or "Columns
16. Show Blank Rows: "Yes" to insert a blank line after each group level 1 row. 
17. Hide Data Tab: "No", "Yes" (allow unhide), "YES" (no GUI option to unhide).  
18. Hide Field List: Yes hides the field list on the right side of the screen. 
19. Data Orientation
(optional) 
"Rows" (Default) or "Columns" (to show metrics side-by-side)  
20. Options 
(optional): 
various options separated by ‘||’ (e.g. Report_Lay
out=Tabular) 
Documents you may be interested
Documents you may be interested