free pdf library for .net c# : Collect data from pdf forms SDK Library service wpf asp.net html dnn powerjobs2015_manual4-part2016

LinkManager
Gets an object which
encapsulates all access
to Links
read-only
Long
PartSizeInBytes
Gets the password for the
authenticated user.
read-write
PersistableIdManager
Gets an object which
encapsulates all
interaction with
persistable ids
read-only
PropertyManager
Gets an object which
encapsulates all access
to vault property
definitions and property
values.
read-only
String
Server
Gets the name of the
server that we are
connected to.
read-only
String
Ticket
Gets an encrypted ticket
that represents the
unique connection to the
server.
read-only
Long
UserID
Gets the unique identity
of the authenticated user
on the vault server.
read-only
String
UserName
Gets the name of the
authenticated user.
read-only
String
Vault
Gets the name of the
vault that we are
connected to.
read-only
WebServiceManager
Gets the low level Web
Service Manager which
stores the underlying
physical connection to
the server. This can be
used to make direct calls
to the web service layer
for any functionality that
is not provided by the
Framework.
read-only
WorkingFoldersManager
Gets an object which
encapsulates all access
to a vaults working
folders
read-only
Methods
Name
Description
ClearCache
Clears the specified cached data from the
connection
Equals
Tests if obj is equal to this connection object.
vaultExplorerUtil
Syntax
Collect data from pdf forms - extract form data from PDF in C#.net, ASP.NET, MVC, Ajax, WPF
Help to Read and Extract Field Data from PDF with a Convenient C# Solution
extract data from pdf to excel; extract pdf form data to xml
Collect data from pdf forms - VB.NET PDF Form Data Read library: extract form data from PDF in vb.net, ASP.NET, MVC, Ajax, WPF
Convenient VB.NET Solution to Read and Extract Field Data from PDF
how to save a pdf form in reader; how to flatten a pdf form in reader
$vaultExplorerUtil.Membername
Members
vaultExplorerUtil has these types of members:
Methods
Methods
Name
Description
UpdateFileProperties
Updates a set of properties for a file.
Code Snippets
Changing filestates, categories, properties
Create a textfile via template
Create DWG from an IDW
Creating PDFs with their parents' properties
Export Vault Data to XML
General powershell codesnipptes
Convert office documents to Pdf — 
Convert World, Excel or Powerpoint files to PDF
Copy file in a directory — 
Copy a file in a directory and create the directory if it does not exist
Print something with the windows default printer
Send queries to a sql server — 
Connecting and sending queries to a sql server via powershell
Set default printer — 
Setting the windows default printer via powershell.
Get all users of a certain group
Print via Inventor
Retrive the user that queued the job
Selected files to ZIP
Send email via jobserver
Changing filestates, categories, properties
powerJobs2013 documentation
From now on powerJobs2013 documentation is available as Pdf only. You can download it here: Part1 Part2
If you want to change, filestates/categories with the jobserver the jobserver user needs sufficient permissions. Additionally you can only
change things you could change manually as well.
Changing state of master files
$file = PrepareEnvironmentForFile "Catch Assembly.iam"
Update-VaultFile -File $file."Full Path" -Status "Released"
Changing state of child files
$file = PrepareEnvironmentForFile "Catch Assembly.iam"
$assoc = Get-VaultFileAssociations -File $file.'Full Path'
ForEach($file in $assoc){
Update-VaultFile -File $file.'Full Path' -Status 'Work in Progress' 
}
Changing categories
$file = PrepareEnvironmentForFile "Catch Assembly.iam"
Update-VaultFile -File $file.'Full Path' -Category 'Engineering'
Changing properties
Update-VaultFile -File '$/Padlock/Catch Assembly.iam' -Properties @{'Author' = 'Angela
Merkel'; 'Description' = 'Bundeskanzlerin'}
Create a textfile via template
To use the script, create a file "C:\template.txt". Write your desired text and the variables for the properties in the file.
The syntax is as following:
The format is flexible. You could also define a html page.
<html>
<table border="1">
<tr>
<td>
</td>
{Name};
<td>
</td>
{Classification};
<td>
;</td>
{Created By}
</tr>
</table>
</html>
Text text text text {Propertiename};
$file = PrepareEnvironmentForFile "Catch Assembly.iam"
$templatePath = "C:\temp\template.txt"
$destinationPath = "C:\temp\template.html"
$regex = [regex]"\{+(?i)\b[A-Z\s]+\b\}"
$template = Get-Content -Path $templatePath
$propertyMatches = $regex.Matches($template)
foreach($propertyMatch in $propertyMatches){
$propertyName = $propertyMatch.Value.Trim( @('{','}') )
$propertyValue = $file.$propertyName
$template = ($template -replace $propertyMatch.Value, $propertyValue)
}
$template | Out-File $destinationPath -Append
Create DWG from an IDW
This code converts an IDW into an DWG. At line 20 you can choose other filetypes as well. But keep in mind you can only convert what is
supported by Inventors "Save as"
$file = PrepareEnvironmentForFile "Catch Assembly.idw"
$ext = $file.'File Extension'
$validExtensions = @("idw")
if($validExtensions -notcontains $ext){
throw("$($ext) is not a valid extension)")
}
$localDestFile = "C:\TEMP\" + $file.Name + ".dwg"
$publisher = $powerJobs.GetPublisher("PDF")
$publisher.OutputFile=$localDestFile
$publisher.add_OnBeginPublish(
{
param($publisher, $document)
$document.Document.SaveAs($localDestFile,$true)
})
if(!$publisher.Open($File.Id)){
throw ("The .dwg-translation failed!")
}
Creating PDFs with their parents' properties
$file = PrepareEnvironmentForFile "Catch Assembly.idw"
$entityClassId = $file.'Entity Type ID'
$propDefs =
$vault.PropertyService.GetPropertyDefinitionsByEntityClassId($EntityClassId)
$propertyNames = $propDefs | Where { $_.IsSys -eq $false } | Select -ExpandProperty
DispName
forEach($propertyName in $propertyNames){
[hashtable]$props += @{$propertyName = $file.$propertyName}
}
#Create Pdf and check it in
#...
$pdf = Get-VaultFile -File "$($file.'Full Path').pdf"
$newpdf = Update-VaultFile -File $pdf.'Full Path' -Properties $props
Export Vault Data to XML
With this code you can export data from Vault into a xml file.
$file = PrepareEnvironmentForFile "Catch Assembly.idw"
$xmlPath = "C:\Temp\$($file.Name).xml"
$entityClassId = $file.'Entity Type ID'
$propDefs =
$vault.PropertyService.GetPropertyDefinitionsByEntityClassId($EntityClassId)
$propertyNames = $propDefs | Where { $_.IsSys -eq $false } | Select -ExpandProperty
DispName
forEach($propertyName in $propertyNames){
[hashtable]$properties += @{$propertyName = $file.$propertyName}
}
$output = "<root>`n"
forEach($key in $properties.keys){
$output += "<$key>$($properties.$key)</$key>".Replace("
","").Replace("(","").Replace(")","") + "`n"
}
$output += "</root>"
$output | Out-File $xmlPath
General powershell codesnipptes
Convert office documents to Pdf
Convert World, Excel or Powerpoint files to PDF
Copy file in a directory
Copy a file in a directory and create the directory if it does not exist
Print something with the windows default printer
Send queries to a sql server
Connecting and sending queries to a sql server via powershell
Set default printer
Setting the windows default printer via powershell.
Convert office documents to Pdf
Requirements
MS Office2010 or higher
$word = New-Object -ComObject Word.Application
Sleep -Seconds 10
$process = Get-Process winword -ErrorAction SilentlyContinue
$word.Visible = $false
$doc = "C:\Temp\Document.docx"
$saveaspath = "C:\Temp\Document.pdf"
#to fix language pack problems
$ci = [System.Globalization.CultureInfo]'en-US'
#Opens the wordfile to save as pdf-file
$openDoc = $word.documents.PSBase.GetType().InvokeMember('Open',
[Reflection.BindingFlags]::InvokeMethod, $null,$word.documents,$doc, $ci)
#Creates the pdf-file
$openDoc.ExportAsFixedFormat($saveaspath ,
[Microsoft.Office.Interop.Word.WdExportFormat]::wdExportFormatPDF)
$openDoc.Close()
$word.Quit()
#Creates a Excel-Object
$excel = New-Object -ComObject Excel.Application
$excel.Visible = $false
$formatPDF = 17
$saveaspath = "C:\TEMP\WorkBook.pdf"
$workbook = $excel.Workbooks.Open("C:\TEMP\WorkBook.xlsx")
#Creates the pdf-file
$workbook.SaveAs($saveaspath ,$formatPDF)
$workbook.Close()
$excel.Quit()
Word
Excel
$powerpnt = New-Object -ComObject PowerPoint.Application
$doc = "C:\Temp\Presentation.pptx"
$saveaspath = "C:\Temp\Presentation.pdf"
$openDoc =
$powerpnt.Presentations.PSBase.GetType().InvokeMember('Open',[Reflection.BindingFlags]
::InvokeMethod,$null,$powerpnt.Presentations,$doc, $ci)
$openDoc.SaveAs($saveaspath ,
[Microsoft.Office.Interop.PowerPoint.PpSaveAsFileType]::ppSaveAsPDF,[Microsoft.Office.
Core.MsoTriState]::msoFalse)
$openDoc.Close()
Copy file in a directory
Copy a file in a directory and create the directory if it does not exist
#Path to file
$sourceFile = "C:\<YourFolder>\<YourFile>"
#Path to your directory, if it doesnt exist, it creates a new one
$targetDirectory = "C:\<YourFolder>"
#Test if path is existing
if(!(Test-Path $targetDirectory)){mkdir $targetDirectory}
#file get copyed to directory
Copy-Item -Path $sourceFile -Destination $targetDirectory
#The Copy-Item cmdlet contains a lot more intresting options, for instance -Force
#to force overwriting, or -Recurse to copy a complete folderstructure
Print something with the windows default printer
#Write here the file-path
$document = "C:\<YourFolder>\<YourFile>"
#Prints the document content and waits until the process ends
Start-Process -FilePath $document -Verb Print -Wait
Send queries to a sql server
Requirements
You need a SQL Server named MySQLServer
You should be able to connect to it via integrated security
The server should have a Database called TestDB
TestDB should contain a Table called Table1 with columns matching the insert statement below
Powerpoint
#settings
$DataSource = 'MySQLServer'
$DbName = 'TestDB'
#create connection object
$conn = New-Object System.Data.SqlClient.SqlConnection("Data Source=$DataSource;
Initial Catalog=$DbName; Integrated Security=SSPI")
#open database connection
$conn.Open()
#get a command object
$cmd = $conn.CreateCommand()
#define the insert statement
$cmd.CommandText ="INSERT INTO Table1 VALUES ('testtext1', 'testtext2', 123)"
#execute the command
$cmd.ExecuteNonQuery()
#cleanup
$cmd.Dispose()
#close the connection
$conn.Close()
#cleanup
$conn.Dispose()
Set default printer
Setting the windows default printer via powershell.
#get default printer
$olddefaultprinter=Get-WmiObject -Class Win32_Printer -Filter "Default=True"
#set new default printer
$newdefaultprinter=Get-WmiObject -Class Win32_Printer -Filter "DeviceID='Printername'"
$newdefaultprinter.SetDefaultPrinter()
#write here the actions to be done with new default printer
#set old default printer, if needed
$olddefaultprinter.SetDefaultPrinter()
Get all users of a certain group
function Get-UsersByGroup{
param(
[string]$groupName
)
$group = $vault.AdminService.GetGroupByName($groupName)
$groupInfo = $vault.AdminService.GetGroupInfoByGroupId($group.Id)
$groupInfo.Users | ForEach-Object { [array]$users += $_ }
return $users
}
$adminusers = Get-UsersByGroup 'Administrators'
Print via Inventor
$file = PrepareEnvironmentForFile "Catch Assembly.idw"
#region Settings
$printerName = "myPrinter"
$validExtensions = @("idw")
#endregion
$ext = $file.'File Extension'
if($validExtensions -notcontains $ext){
$powerJobs.Log.Warn("$ext is not a valid file extension")
exit 1
}
$publisher = $powerJobs.GetPublisher("PDF")
$publisher.OutputFile = "c:\temp\dummy.pdf"
$publisher.add_OnBeginPublish(
{
param($publisher, $PublishEventArgs)
$printManager = $PublishEventArgs.Document.PrintManager
$printManager.GetType().InvokeMember("Printer",[Reflection.BindingFlags]::SetProperty,
$null, $printManager, $printerName)
$printManager.ScaleMode = [Inventor.PrintScaleModeEnum]::kPrintBestFitScale
$printManager.PrintRange = [Inventor.PrintRangeEnum]::kPrintAllSheets
$printManager.PaperSize = [Inventor.PaperSizeEnum]::kPaperSizeA0
$printManager.SubmitPrint()
})
if (!$publisher.Open($file.Id)){
throw("Failed to open $($file.name)")
}
Retrive the user that queued the job
$jobQueue = $vault.JobService.GetJobsByDate(1000,[DateTime]::MinValue)
$currentJob = $jobQueue | Where-Object {$_.Id.Equals($powerJobs.Job.Id)}
$userinfo = $vault.AdminService.GetUserByUserId($currentJob.CreateUserId)
$email = $userinfo.Email
#place additional code here. Instead of writing the information to a textfile you
could send an email to the user
$userinfo | Out-File 'C:\Temp\user.txt'
Selected files to ZIP
$file = PrepareEnvironmentForFile "Catch Assembly.idw"
#region Settings
$zipFilePath = "C:\myZips"
$zipFileName = "$($zipFilePath)\$($file.Name).zip"
$tempDownloadPath = "C:\Temp\zip\$($file.name)"
#endregion
$files = Copy-VaultFile -file $file -downloadPath $tempDownloadPath -includeChildren
-recurseChildren -includeAttachments
New-Folder -path $zipFilePath
set-content $zipFileName ("PK" + [char]5 + [char]6 + ("$([char]0)" * 18))
$zipFile = (new-object -com shell.application).NameSpace($zipFileName)
$fileToBeZipped = Get-ChildItem $tempDownloadPath
$fileToBeZipped | ForEach-Object {
#The method .MoveHere() is running asynchronous, so we have to wait a few seconds
before moving the next file into zip
Start-Sleep -Seconds 2
$ZipFile.MoveHere($_.FullName,1024)
}
Send email via jobserver
Select files in Vault and let them zip together via jobserver. The resulting zip file could be sent via email, stored into Vault, saved in a custom
folder, uploaded somewhere, etc
This script uses the 
and 
modules.
vaultEx.psm1
fileSystem.psm1
Documents you may be interested
Documents you may be interested