List all form fields with JS?
I imagine this is a pretty easy one, but does anyone know what the script would be to list all form fields in the console? Specifically, at the moment, I only need it for buttons, but I imagine it would be useful for any fields as well.
Take a look at the "Required Fields" tool at this site:
http://www.pdfscripting.com/public/65.cfm
Its a toolbar button that lists all fields that are required. It could easily be changed to filter for any field parameter, or none.
Thom Parker
The source for PDF Scripting Info
pdfscripting.com
The Acrobat JavaScript Reference, Use it Early and Often
http://www.adobe.com/devnet/acrobat/javascript.html
Then most important JavaScript Development tool in Acrobat
The Console Window (Video tutorial)
The Console Window(article)
Similar Messages
-
Form field with comma delimited value list to cfc
I have a form that passes a field to an action page with a
comma delimited value.
For instance the field name is: Program_ID
value for program_ID is: 31, 32
I am able to treat this variable as a list and check its
length, and loop over the list prior to passing it to a cfc using
the attached code:
When I try and pass the variable as a string to a cfc and
invoke a query, cf no longer recognizes my var as a list.
Therefore the code attached does not function...
Is there a specific var type that will pass through as a list
and allow me to run the code block attached?
thanks
CraigOk answered my own question.. Here is the answer for those
who are interested...
initialize var for cfc in cfinvoke statement
<cfinvokeargument name="Program_ID"
value="#Form.Program_ID#">
pass argument to cfc as a string
<cfargument name="Program_ID" type="string"
required="true">
use listqualify to parse list in cfc and set new var
<cfset selectedProgramID =
ListQualify(Program_ID,"'",",","CHAR")>
use the new var in the following statement in sql code:
((Program_ID) IN (#PreserveSingleQuotes(selectedProgramID)#))
The following code handles a form field with a single value
or a comma delimited value. -
Extracting all form fields from a fillable pdf
Is there any way of extracting/exporting/copying all form fields from a pdf? Meaning, the wordings from all the fields so I can pass it along to another individual to use for cross referencing, since they are not able to see all the various form fields within the split screen?
Thanks!!!The person that needs this is looking for the entire running list of all the fillable field names within the pdf. Any kind of document that I can deliver them in, I am willing to take suggestions.
Right now, what I was thinking of doing was having the screen split between the pdf and the listing of field names in the sidebar and taking screen captures as I scroll down the pdf and corresponding field names in the sidebar until I got all pages.
Is there an email address I could contact you at to discuss offline? I have an example I could send you but don't want posted online.
Thanks! -
How to list all the Fields for an Active Directory Object
How do I list all the fields that an Active Directory object contains? I know the most common ones, but would like to enumerate through all the fields and obtain the type of fields and their values...
Here is my complete code - I only put snippets so that the post was not too huge...
Option Explicit
Const ADS_SCOPE_SUBTREE = 2
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim adoCommand, adoConnection, adoRecordSet
Dim dtmDate, dtmValue
Dim j
Dim lngBias, lngBiasKey, lngHigh, lngLow, lngValue
Dim objADObject, objClass, objDate, objFile, objFSO, objRootDSE, objShell
Dim pathToScript
Dim strAdsPath, strConfig, strDNSDomain, strHex, strItem, strProperty, strValue
Dim strFilter, strQuery
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("Wscript.Shell")
pathToScript = objShell.CurrentDirectory
Set objFile = objFSO.CreateTextFile(pathToScript & "\TestAD.csv")
' Determine Time Zone bias in local registry.
' This bias changes with Daylight Savings Time.
lngBiasKey = objShell.RegRead("HKLM\System\CurrentControlSet\Control\TimeZoneInformation\ActiveTimeBias")
If (UCase(TypeName(lngBiasKey)) = "LONG") Then
lngBias = lngBiasKey
ElseIf (UCase(TypeName(lngBiasKey)) = "VARIANT()") Then
lngBias = 0
For j = 0 To UBound(lngBiasKey)
lngBias = lngBias + (lngBiasKey(j) * 256^j)
Next
End If
' Determine configuration context and DNS domain from RootDSE object.
Set objRootDSE = GetObject("LDAP://RootDSE")
strConfig = objRootDSE.Get("configurationNamingContext")
strDNSDomain = objRootDSE.Get("defaultNamingContext")
Set adoCommand = CreateObject("ADODB.Command")
Set adoConnection = CreateObject("ADODB.Connection")
adoConnection.Provider = "ADsDSOObject"
adoConnection.Open "Active Directory Provider"
adoCommand.ActiveConnection = adoConnection
adoCommand.CommandText = "SELECT * FROM 'LDAP://" & strDNSDomain & "'WHERE objectClass=user'"
adoCommand.Properties("Page Size") = 1000
adoCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
Set adoRecordSet = adoCommand.Execute
Set adoRecordSet = adoCommand.Execute
adoRecordSet.MoveFirst
Do Until adoRecordSet.EOF
strAdsPath = adoRecordSet.Fields("ADsPath").Value
' Bind to Active Directory object specified.
Set objADObject = GetObject(strAdsPath)
Set objClass = GetObject(objADObject.Schema)
' Write which object is grabbed from AD
objFile.Write(Replace(strAdsPath, ",", ";;;"))
' Enumerate mandatory object properties.
For Each strProperty In objClass.MandatoryProperties
On Error Resume Next
strValue = objADObject.Get(strProperty)
If (Err.Number = 0) Then
On Error GoTo 0
If (TypeName(strValue) = "String") Or (TypeName(strValue) = "Long") Or (TypeName(strValue) = "Date") Then
objFile.Write("," & strProperty & "|||" & Replace(CStr(strValue), ",", ";;;"))
ElseIf (TypeName(strValue) = "Byte()") Then
strHex = OctetToHexStr(strValue)
objFile.Write("," & strProperty & "|||" & CStr(strHex))
ElseIf (TypeName(strValue) = "Variant()") Then
For Each strItem In strValue
On Error Resume Next
objFile.Write("," & strProperty & "|||" & Replace(CStr(strItem), ",", ";;;"))
If (Err.Number <> 0) Then
On Error GoTo 0
objFile.Write("," & strProperty & "|||Value cannot be displayed")
End If
On Error GoTo 0
Next
ElseIf (TypeName(strValue) = "Boolean") Then
objFile.Write("," & strProperty & "|||" & CBool(strValue))
Else
objFile.Write("," & strProperty & "|||Type:" & TypeName(strValue))
End If
Else
Err.Clear
sColl = objADObject.GetEx(strProperty)
If (Err.Number = 0) Then
For Each strItem In sColl
objFile.Write("," & strProperty & "|||" & CStr(strItem))
If (Err.Number <> 0) Then
objFile.Write("," & strProperty & "|||Value cannot be displayed")
End If
Next
On Error GoTo 0
Else
Err.Clear
Set objDate = objADObject.Get(strProperty)
If (Err.Number = 0) Then
lngHigh = objDate.HighPart
If (Err.Number = 0) Then
lngLow = objDate.LowPart
If (lngLow < 0) Then
lngHigh = lngHigh + 1
End If
lngValue = (lngHigh * (2 ^ 32)) + lngLow
If (lngValue > 120000000000000000) Then
dtmValue = #1/1/1601# + (lngValue / 600000000 - lngBias) / 1440
On Error Resume Next
dtmDate = CDate(dtmValue)
If (Err.Number <> 0) Then
objFile.Write("," & strProperty & "|||<Never>")
Else
objFile.Write("," & strProperty & "|||" & CStr(dtmDate))
End If
Else
objFile.Write("," & strProperty & "|||" & FormatNumber(lngValue, 0))
End If
Else
objFile.Write("," & strProperty & "|||Value cannot be displayed")
End If
Else
On Error GoTo 0
objFile.Write("," & strProperty)
End If
On Error GoTo 0
End If
End If
Next
' Enumerate optional object properties.
For Each strProperty In objClass.OptionalProperties
On Error Resume Next
strValue = objADObject.Get(strProperty)
If (Err.Number = 0) Then
On Error GoTo 0
If (TypeName(strValue) = "String") Then
objFile.Write("," & strProperty & "|||" & Replace(CStr(strValue), ",", ";;;"))
ElseIf (TypeName(strValue) = "Long") Then
objFile.Write("," & strProperty & "|||" & Replace(CStr(strValue), ",", ";;;"))
ElseIf (TypeName(strValue) = "Date") Then
objFile.Write("," & strProperty & "|||" & Replace(CStr(strValue), ",", ";;;"))
ElseIf (TypeName(strValue) = "Byte()") Then
strHex = OctetToHexStr(strValue)
objFile.Write("," & strProperty & "|||" & CStr(strHex))
ElseIf (TypeName(strValue) = "Variant()") Then
For Each strItem In strValue
On Error Resume Next
objFile.Write("," & strProperty & "|||" & Replace(CStr(strItem), ",", ";;;"))
If (Err.Number <> 0) Then
On Error GoTo 0
objFile.Write("," & strProperty & "|||Value cannot be displayed")
End If
On Error GoTo 0
Next
ElseIf (TypeName(strValue) = "Boolean") Then
objFile.Write("," & strProperty & "|||" & CBool(strValue))
Else
objFile.Write("," & strProperty & "|||Type:" & TypeName(strValue))
End If
Else
Err.Clear
sColl = objADObject.GetEx(strProperty)
If (Err.Number = 0) Then
For Each strItem In sColl
objFile.Write("," & strProperty & "|||" & CStr(strItem))
If (Err.Number <> 0) Then
objFile.Write("," & strProperty & "|||Value cannot be displayed")
End If
Next
On Error GoTo 0
Else
Err.Clear
Set objDate = objADObject.Get(strProperty)
If (Err.Number = 0) Then
lngHigh = objDate.HighPart
If (Err.Number = 0) Then
lngLow = objDate.LowPart
If (lngLow < 0) Then
lngHigh = lngHigh + 1
End If
lngValue = (lngHigh * (2 ^ 32)) + lngLow
If (lngValue > 120000000000000000) Then
dtmValue = #1/1/1601# + (lngValue / 600000000 - lngBias) / 1440
On Error Resume Next
dtmDate = CDate(dtmValue)
If (Err.Number <> 0) Then
objFile.Write("," & strProperty & "|||<Never>")
Else
objFile.Write("," & strProperty & "|||" & CStr(dtmDate))
End If
Else
objFile.Write("," & strProperty & "|||" & lngValue)
End If
Else
objFile.Write("," & strProperty & "|||Value cannot be displayed")
End If
Else
On Error GoTo 0
objFile.Write("," & strProperty & "||| ")
End If
On Error GoTo 0
End If
End If
Next
objFile.WriteLine("")
adoRecordSet.MoveNext
Loop
objFile.Close
' Function to convert OctetString (Byte Array) to a hex string.
Function OctetToHexStr(arrbytOctet)
Dim k
OctetToHexStr = ""
For k = 1 To Lenb(arrbytOctet)
OctetToHexStr = OctetToHexStr _
& Right("0" & Hex(Ascb(Midb(arrbytOctet, k, 1))), 2)
Next
End Function
I have been able to obtain all the Computer, Contact, Group and OU objects without issue with this code... -
How to Map Proces form field with Resource form field?
Hi,
How to Map Proces form field with Resource form field while creating Process form in Form designerAre you talking about Provisioning ?
then you do that in Data Flow under Process Defintion in OIM 10g
In OIM 11g you use Request Dataset. In that you can directly map fields to process form. -
Acrobat XI programmatically reset/clear all form fields when opening a PDF form
I've got a PDF form document that I'm working on. I'd like to add something to it to programmatically clear or reset all form fields to blank when the document is opened.
Thoughts/ideas??
Mucho thanks!!You can use the resetForm JavaScript method, either in the initial page's Page Open event or in a document-level JavaScript whic will execute when the document is opened.
http://livedocs.adobe.com/acrobat_sdk/9.1/Acrobat9_1_HTMLHelp/JS_API_AcroJS.88.523.html -
List all Virtual Machines with Associated Tags
I have custom attributes for application engineer, OS engineer, application name, etc. In the vSphere Client I can list all VMs and their custom attributes. I can then sort the list by custom attribute. Doing this allows me to find virtual machines with empty custom attributes.
I have converted my custom attributes to tags. I cannot find a way to list all virtual machines with associated tags in the vSphere Web Client. Is there a way to do this using PowerCLI? I'd like to be able to produce a CSV file that contains all virtual machines and their associated tags.If you have tag assignments for the category of "OS engineer". You can write this:
Get-TagAssignment -Category "OS engineer"
That will list the tags in the category and the associated VMs. -
How to populate a hidden form field with a value passed from another page
I'm using PHP/MySQL and DW CS4.
I am trying to obtain the external key for a table, and include it as a hidden field in a form for a second table.
The user selects a "need" from a list and is taken to a new page which displays the need selected in the prior page and a form the user can fill out with details of his offer, there should also be a hidden field in this form that contains the index to the needs table, this hidden field holds the external key. Most of the code is working, except for populating the hidden field with the external key. I have proven(by printing it to the screen) that I have obtained the external key and stored it in a variable ($saveNeedId) . What I'm unable to do is assign this variable to the hidden field in the form I'm about to store in a table. Sometimes I get zero and sometimes I get the index to the first need in the table. This ought to be simple but I can't get it to work, I must be missing something obvious - still very new to PHP.
Here's the code that sets up the variable and prints it to the screen for test purposes
$saveNeedId = "-1";
if (isset($_GET['needId'])) {
$saveNeedId = $_GET['needId'];
print $saveNeedId;
Here's the code that sets up the hidden fields in the form, the one I'm trying to set up is the first one, needId
<input type="hidden" name="needId" value="<?php echo $row_rsNeedsUnmet['needId']; ?>" />
<input type="hidden" name="offerId" value="" />
<input type="hidden" name="MM_insert" value="form1" />
The page where the user sees the list of needs is here www.hollisterairshow.com/weneed.php
I'd really appreciate sone help with this, I've tried all combinations of double quotes, percent signs and nothing works...sigh.
TonyHere's the code that sets up the variable and prints it to the screen for test purposes
$saveNeedId = "-1";
if (isset($_GET['needId'])) {
$saveNeedId = $_GET['needId'];
print $saveNeedId;
Here's the code that sets up the hidden fields in the form, the one I'm trying to set up is the first one, needId
<input type="hidden" name="needId" value="<?php echo $row_rsNeedsUnmet['needId']; ?>" />
<input type="hidden" name="offerId" value="" />
<input type="hidden" name="MM_insert" value="form1" />
<input type="hidden" name="needId" value="<?php echo $_GET['needId']; ?>" />
I looked at your page. It looks like you figured it out. -
Delete all form fields in one go
Hi
I am using Acrobat X Pro.
While running the accessibility check on my PDF, I got an error that there are many form fields that are not tagged to the structure. When I highlighted the fields, I noticed that all these form fields are redundant and can be safely removed. Is there a way I can remove them in one go for the entire PDF document? I saw that there is page-level deletion option where I need to do a Select All and Delete. But how about entire document level?
Few of my colleagues have Acrobat XI Pro. If this is not possible in X Pro, please let me know we can do it in XI Pro. I can check that out as well.
SreekanthGo to Form Edit mode, enter the Fields list, press Ctrl+A, then Delete.
-
Javascript Code to List all Signature Fields in a PDF Document
Hi everybody,
I am doing a VB.NET application that apply a digital signature in a PDF document.
My VB.NET application invoke a javascript file that signs de document. It's working very well, but I need to pass the field name to place the signature, and this is not good!
I would like to list all the signature fields existing in my PDF file, is it possible do this with Javascript? I couldn't find in the Acrobat 8 SDK documentation.
I have installed Acrobat 8 Professional in my machine.
Thank you in advance!Nobody knows?
Help me please!
I am reading something about a method called "event.target.name" that probably do what I need, but I couldn't use it. Am I in the right way? Any ideas?
Thanks! -
I am making a PDF with editable form fields out of InDesign CS6. When I make the interactive PDF, the font, Helvetica Neue is being substituted with the default font, Times Roman. The client has provided me with last years PDF which has a nice San Serif for the editable fields. I need to change the font either to Helvetica Neue, or at least to a nice San Serif common system font. I have Acrobat X.
Thanks in advance!!I called a friend of mine who walked me through this so I will post the instructions for anyone else who may be having this problem...
1. Open the PDF with the form fields in a recent version of Acrobat.
2. Click on the Toolls tab.
3. Under Forms, click Edit.
4. Now you will see your fields listed under "Field" > "Sort by"... "Text Field 1"... etc.
5. Holding "control" click where it says "Text Field 1" and some options will pop up.
6. Click on "Properties".
7. A "Text Fields Properties" window will pop up.
8. Click on the "Appearance" tab.
9. Here you can change your fonts and font sizes.
Good luck! -
Using "Update All Mapped Fields" with multi-value attributes
Is it possible to update a value in a multi-value attribute through the import manager? It appears that if a source value is different then it just gets added as another value to the record.
For example, a product has an attribute of speed which is measured in revolutions/minute. Some products can be rated at two speeds (i.e. 1800/3600).
I created a numeric attribute for speed and enable only nominal rating and selected multi-valued.
In import manager, I set "/" as multi delimiter for source field. This created two entries in destination attribute, 1800 and 3600.
However, if on subsequent imports the speed values changes for this record (i.e. 1200 and 1800) then I will now have 1200, 1800, and 3600 as values for this record.
Would the proper solution be to create two individual numeric attributes that are single valued (i.e. Speed1 and Speed2)?Hi Aaron,
in your example it would make sense to use two different attributes called "Speed1" and "Speed2". Using the multi value option, MDM allows you to store a list of values into a single field. This list is more or less unlimited, you can add as many values as you like. A change of an existing value is not possible. The reason is that Import Manager does not know, which value you've changed! So it simply adds the "new" record (which is the 1200 in your example) to your value list. This is the intended behaviour of the "update all mapped fields option". If you really want to replace the values, you can check if the "Replace" option is useable for you. But note, that the replace will replace the complete existing record with the incoming new one. This means if the product you want to import with the replace option is smaller than the existing one (maybe it does not contain values for all segments), you'll loose data in MDM.
BR Michael -
List all AD users with memberof
Hi I have got this script and it works fine, but I cant add the memberof groups for each user.
On Error Resume Next
Const ADS_SCOPE_SUBTREE = 2
Const ADS_UF_ACCOUNTDISABLE = &H0002
Const ADS_UF_PASSWD_NOTREQD = &H0020
Const ADS_UF_PASSWD_CANT_CHANGE = &H0040
Const ADS_UF_DONT_EXPIRE_PASSWD = &H10000
Const ADS_UF_SMARTCARD_REQUIRED = &H40000
'Set RootDSE
Set objRootDSE = GetObject("LDAP://rootDSE")
strDomain = objRootDSE.Get("defaultNamingContext")
strADPath = "LDAP://" & strDomain
'wscript.Echo strADPath
Set objDomain = GetObject(strADPath)
'wscript.echo "objDomain: " & objDomain.distinguishedName
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "SAURON"
Set objCommand.ActiveConnection = objConnection
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
objCommand.CommandText = _
"SELECT Name, description, sAMAccountName, st, postalCode, co, l, profilePath, homeDrive, distinguishedName,userAccountControl FROM '"& strADPath &"' WHERE objectCategory='user'"
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst
Set objFSO = CreateObject("scripting.filesystemobject")
Set logStream = objFSO.opentextfile("C:users\dom.adm.pa\desktop\domainusers.csv", 8, True)
logStream.writeline("Name,Description,sAMAccountName,st,postalCode,co,l,Account Disabled,Password Required,User Changable Password,Password Expires,Login Count,Last Login,Last Password Change,Created,Modified")
Do Until objRecordSet.EOF
strDN = objRecordset.Fields("distinguishedName").Value
Set objUser = GetObject ("LDAP://" & strDN)
If objRecordset.Fields("userAccountControl").Value AND ADS_UF_ACCOUNTDISABLE Then
Text = "Yes"
Else
Text = "No"
End If
If objRecordset.Fields("userAccountControl").Value AND ADS_UF_PASSWD_NOTREQD Then
Text = Text & ",No"
Else
Text = Text & ",Yes"
End If
If objRecordset.Fields("userAccountControl").Value AND ADS_PASSWORD_CANT_CHANGE Then
Text = Text & ",No"
Else
Text = Text & ",Yes"
End If
If objRecordset.Fields("userAccountControl").Value AND ADS_UF_DONT_EXPIRE_PASSWD Then
Text = Text & ",No"
Else
Text = Text & ",Yes"
End If
logStream.writeline(objRecordset.Fields("Name").Value & ","_
& objRecordset.Fields("description").Value & ","_
& objRecordset.Fields("sAMAccountName").Value & ","_
& objRecordset.Fields("st").Value & ","_
& objRecordset.Fields("postalCode").Value & ","_
& objRecordset.Fields("co").Value & ","_
& objRecordset.Fields("l").Value & ","_
& objUser.logonCount & ","_
& objUser.LastLogin & ","_
& objUser.PasswordLastChanged & ","_
& objUser.whenCreated & ","_
& objUser.whenChanged & ","_
Loop
logStream.CloseAre you looking for members:
1) in a specific group, or
2) list all users and all their direct groups, or
3) get a complete list of all groups a user is a memberof, to include nested?
I would recommend using Powershell. It's made for this type of thing. Some of the Cmdlets you can check are:
List all users with all groups:
Get-ADUser -filter * -properties memberof | select samaccountname,memberof
List all members of a group:
Get-ADGroupmember <groupname> -recursive
Get all groups a member is nested in:
Get-ADAccountAuthorizationGroup <username> | ft name
- Chris Ream -
**Remember, if you find a post that is helpful, or is the answer, please mark it appropriately.** -
Help... Populate pdf form fields with html form inputs.
I have a website that allows users to choose the pdf document they want and create. After selecting which pdf they want to create they are redirected to a web page with a html form. The html form has questions that corresponds with the the form fields of the pdf document the user selected. When submitted the code (ASP, PHP whatever is the easier) runs a script that populates the pdf document form fields. The user is then prompted if they want to save or open the document. The newly created pdfs and the user inputs do not need to be saved on the server.
I create the pdf templates using PDF 6.0 professional
Server can be windows or linux
I understand ASP a little but will use whatever is feasible
Purchasing a program is okay as long as its reasonable and is changeable by me and I have full control.
Any help would be appreciated...
Thanks,
JohnTry the Developers/SDK forum...
This forum is for questions about the PDF Language itself.
Leonard -
How to map the form fields with zoho crm module?
I am integrating a web app with Zoho CRM,I created a form in .aspx and put some fields on it like first name,last name,email etc.Now i want to map these fields with the zoho crm contacts module,so that when i submit this form it will save the data there.
Sumit BhargavHi Sumit,
ZOHO CRM is third party software, it’s out of our support range. I recommend you have a look at ZOHO Developer API from
http://www.zoho.com/crm/help/api/. If you have any questions about it, you can open thread on their forum for support.
https://forums.zoho.com/.
Thank you for understanding.
Regards,
We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
Click
HERE to participate the survey.
Maybe you are looking for
-
No sound on YouTube since upgrading to Mountain Lion
I think this problem started after upgrading to Mountain Lion, but I didn't notice it for the first few weeks, so I'm not certain. I haven't made any other changes since then. My husband upgraded his iMac at the same time, and he didn't lose the au
-
Hi, I create substitution using exit by copy RGGBS000 to ZRGGBS000 and activated it in tcode OBBH. When I test using Tcode F-02, saves as complated, it is work. My questions: 1. When I changes my parked document, why my substitution does not work ? 2
-
Hi there, As I do a DISPLAY DOCUMENT FLOW(via T-Code: VA03) for an OUTBOUND DELIVERY Order , I was directed to a screen which displays the following fields under tab Item Overview <b> Planned GI Actual GI Date</b> Please advice which standa
-
Help, my macbook pro won't start anymore
Hello all, I have had some issues with my macbook pro lately: A few weeks ago, my Macbook started freezing and making alarm sounds. I didn't do anything about it because it happened only a few times per week. Suddenly it happened 4 or 5 times in a ro
-
How can I best edit word documents that have been emailed to my iPad?
I regularly receive word documents from work, via my yahoo email account. I have two questions really. 1) Can I edit word documents received via email? 2) If this is possible, what is the best way to do this? Thanks in advance