What (ISO?) document completely specifies the PDF file format?
Is there ONE (ISO?) document that FULLY specifies the format of a PDF file format? Where to obtain it?
I need it so I can write a program that will perform some processes on PDF files.
Thanks
For all practical purposes there's no file size limit in the ISO PDF specification, however the bit length of internal references means there will be problems at around 10GB. There's also a limit of 2 billion pages (the page count attribute is a 32-bit int).
Distiller won't output more than 32767 pages at a time, but I know cases of archivists working with 100,000-page text files (created by appending thousands of documents, but not in Acrobat).
Having said that, the Acrobat Family is 32-bit code, so can only allocate 2GB of process memory. This means you can't perform tasks where an asset larger than the allocated free space has to be retained in RAM, and that includes the save operation. The Acrobat X Family will open an existing file >2GB, and Acrobat X will assemble PDF Portfolios >2GB, but can't save them.
Given that creating >2GB files is a very rare scenario, there are no announced plans to implement x64 flavors of Acrobat or Distiller.
Similar Messages
-
How can u get the matching percentage whenever compare the pdf files(compare the strings)
Actually I want matching percentage whenever compare the pdf files.First I had completed
read the pdf files content into string
my code like as
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.text.pdf.parser;
namespace WindowsFormsApplication1
public partial class Form1 : Form
string str1;
string filename;
string path;
string str2;
public Form1()
InitializeComponent();
private void button1_Click(object sender, EventArgs e)
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.CheckFileExists = true;
openFileDialog.AddExtension = true;
openFileDialog.Filter = "PDF files (*.pdf)|*.pdf";
DialogResult result = openFileDialog.ShowDialog();
if (result == DialogResult.OK)
filename = Path.GetFileName(openFileDialog.FileName);
path = Path.GetDirectoryName(openFileDialog.FileName);
textBox1.Text = path + "\\" + filename;
private void button2_Click(object sender, EventArgs e)
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.CheckFileExists = true;
openFileDialog.AddExtension = true;
openFileDialog.Filter = "PDF files (*.pdf)|*.pdf";
DialogResult result = openFileDialog.ShowDialog();
if (result == DialogResult.OK)
filename = Path.GetFileName(openFileDialog.FileName);
path = Path.GetDirectoryName(openFileDialog.FileName);
textBox2.Text = path + "\\" + filename;
public static string ExtractTextFromPdf(string filename)
using (PdfReader r = new PdfReader(filename))
StringBuilder text = new StringBuilder();
for (int i = 1; i <= r.NumberOfPages; i++)
text.Append(PdfTextExtractor.GetTextFromPage(r, i));
string result = text.ToString();
return result;
public static string Extract(string filename)
using (PdfReader r = new PdfReader(filename))
StringBuilder text = new StringBuilder();
for (int i = 1; i <= r.NumberOfPages; i++)
text.Append(PdfTextExtractor.GetTextFromPage(r, i));
string result1 = text.ToString();
return result1;
private void button3_Click(object sender, EventArgs e)
str1 = Form1.ExtractTextFromPdf(textBox1.Text);
str2 = Form1.Extract(textBox2.Text);
}Finally how can u get the matching percentage whenever compare the pdf files(compare the strings)please help me.thank uHi,
Based on your code, I see your code related to
iTextSharp Pdf.
iText is a third party library to create PDF originally written for java. iTextSharp is
the C# adaptation of that library.
Question regarding iText are better asked on the iText forum, rather than the Microsoft Forum:
http://itextpdf.com/support
Thanks for your understanding.
Best regards,
Kristin
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. -
" Displaying the Report in PDF file Format "
Hai Friend's,
I have Developed a Report in Web-Intelligence .My Report is having 50 Collums and 600 Rows. The Report is too big Report. when the Save the Report in PDF File format, The PDF file Format Report is Consisting of 10 Pages, The Report Output is not coming in One Page. But my user want the Report all the Field's :: Collumms,Rows in one Page.can Anybody let me know the solution.Hi Ashok,
You can change the page size and orientation in the web.xml in the following folder.
Web Intelligence default Page size Modification u2013 Follow these steps:
1. Open the defaultconfig.xml file found in the following directory:
servername\Program Files\Business Objects\Tomcat\webapps\businessobjects\enterprise115\desktoplaunch\webiApplet\AppletConfig
2. Look for the following code near the top of the page:
<KEY VALUE="page*default">
<FORMAT NAME="A4" ORIENTATION="portrait" />
</KEY>
3. Change this to:
<KEY VALUE="page*default">
<FORMAT NAME="LETTER" ORIENTATION="portrait" />
</KEY>
4. Save the file.
All the Best,
Madhu... -
Just converted a PDF document to Word, none of the graphics from the PDF file show up in the Word document?
What do I need to do to bring the graphics and exhibits from the PDF file to the Word file?Hi jackp52432917,
How was that PDF file created? Please see Will Adobe ExportPDF convert both text and form... | Adobe Community
It could be that the PDF file you're converting was created using a third-party application, and it doesn't contain all the information necessary to ensure a clean conversion. Have you had similar troubles converting other PDF files?
Best,
Sara -
I was attempting to open a document from a frequently used site, I had never been on, on my new mac however. I attempted to open the pdf file and was given the option of which program to use to open it, I mistakenly clicked use always and firefox as the program with which to open pdf files. I do not know how to undo this or what I should do in the future to access the pdf files.
Hi Melfour-
Here is a Support article detailing how to work with your Firefox PDF preferences:
[[Opening PDF files within Firefox]]
Hope that helps. -
As I have read, MS Office 2013 is able to read and write the ISO/IEC 29500 strict (standardized Office Open XML) file format. MS Office 2010 was only able to read the strict format and MS Office 2007 could neither read nor write the strict format. The
.docx, .xlsx and .pptx saved by Office 2007 and 2010 were only complying to the OOXML transitional, as far as I understood.
My main question is what the default file format for saving in MS Office 2013 actually is? Is it still the transitional OOXML or the ISO/IEC 29500 strict format?
In case, MS Office still saves in the transitional standard by default, is it possible to set the strict standard in the settings? Is this recommended (I assume that OOXML strict is the future) to do this?
Thanks.Yes, the Transitional is still the default file format for saving in Office 2013, and we can modify this setting in Word Options, Save:
As Alex Brown covers in his
blog post, "Transitional is intended to preserve the fidelity of existing binary documents being migrated to ISO/IEC 29500, and includes many legacy features for compatibility with existing documents. Strict is a subset of Transitional that does not
include legacy features – this makes it theoretically easier for a new implementer to support (since it has a smaller technical footprint, so to speak), but also makes it less able to preserve the fidelity of existing documents."
Max Meng
TechNet Community Support -
How to show the pdf file into the UIWebView from iphone documents directory?
Hi ,
I am working on web services right now I am getting string into base64 format. After decoding that string into NSData i am saving that data as a pdf into Document directory of iphone. Now the problem is that when I want to show the pdf into UIwebView then it is showing blank page. But when I am checking into /Users/pareshkarnawat/Library/Application Support/iPhone Simulator/4.3.2/Applications/ the pdf file is correctly generated and working fine when I ope it.
How to show that pdf file into UIwebview ? or is there any alernative for this.
Any ideas on how I can go about this? I have looked at a few posts and still can't seem to figure it out.
Any idea's appreciated, thanksThe result is a UIWebView that displays a blank page. No errors occur in the UIWebView delegate method. The thing is that data has the correct length, in bytes, for the PDF I am trying to display, and I also get the pdf file in Library/Application Support/iPhone Simulator/4.3.2/Applications/ Does anyone have an idea as to what might be going wrong here or how I can better debug this problem?
-
copy and pasting a page in an existing document? Copy and paste functions are greyed out? Also tried extracting the page to copy but am alerted that an incorrect structure was found in the PDF file?
What do you mean by "copy and paste a page"? What tool have you selected? Or are you just assuming you can select stuff and copy/paste as in Word?
-
Hi Team,
I am trying to move the .pdf files from drop-off library to custom library.
For the above requirement i am writing content organizer rule condition like (On Group: Document content types & Type: Document)
Property: Name
Operator: Ends with
value: .pdf
and Setting value in target location like
/sites/MS/ProductGuides
How to solve the issue
If help appriciated
Regards,
DhayaHi Dhaya,
I created a Content Organizer rule like this:
When uploading a .pdf file to the Drop Off library, it is moved to the destination library immediately:
I suggest you create a similar rule as above for another test to see if the issue still persists.
Thanks
Patrick Liang
TechNet Community Support
Please remember to mark the replies as answers if they help, and unmark the answers if they provide no help. If you have feedback for TechNet Support, contact
[email protected] -
when i drag the pdf file over other (in previewer) to merge it does not show green circle with plus one. what to do?
Hello djensen1x,
Could you please let me know what version of Acrobat are you using.
Also, tell me your workflow of combining those PDF files?
Please share the screenshot of the error message that you get.
Hope to get your response.
Regards,
Anubha -
In documents I can open pdf files but none of the others
When I go to documents I can open pdf files but nothing else. Same on downloads. I have lots of info I've downloaded over time and I often use it. Can I just go back and use internet explorer for that and if so how?
Opening in the side bar is the default for bookmarks that are created via a link or button on a website.<br />
You can check the Properties of a bookmark via the right-click context menu in the side bar (Ctrl+B; Cmd+B on Mac).<br />
In the Bookmarks Manager (Bookmarks > Show All Bookmarks) you can click the More button in the Details pane at the bottom right.<br />
Make sure that "Load this bookmark in the side bar" is not selected.<br /> -
I need to cut some image into the PDF file, what Adobe product can help me with it?
Hi Hugo,
Please elaborate your issue. What exactly do you want to achieve?
Regards,
Rahul -
I did not install SD card into my K1 .
When I connected K1 to my PC (window XP) I saw the directories:
- Alarms.
- capture.
I had some book in *.pdf file format. I like to copy those pdf file to K1 so I can read under Adobe reader. What DIRECTORY I should copy to ?????
Best Regards.You can put the PDF files anywhere you want, as long as you remember where you put them. Just as you'd do on a desktop operating system, like Windows or OS X, open a file manager app on your K1, and use the file manager app to navigate to your PDF file. Tap on the PDF file and Android will ask you which program (like Adobe Reader) you want to use to open it. For file managers, I like this one: https://market.android.com/details?id=com.rhmsoft.fm.hd It's ad-supported though, so there'll be a little advertisement in the corner. Or use the file manager app that is preinstalled on the K1.
-
While converting spool to PDF, no data is coming in the PDF file.
Hi All,
I am submitting a z program ZPR022_INNCOMETAX_REPORT_COPY1 (which has some output display) from Z_ITSLIP_MAIL. I am creating a job, submitting the above program via JOB to SAP-SPOOL.
In program ZPR022_INNCOMETAX_REPORT_COPY1 , I am getting the run time job information and from there I am getting the spool id. Now I am converting the spool id to a PDF. This PDF should contain the output of the program ZPR022_INNCOMETAX_REPORT_COPY1. This output is normal output using Write statement only. But once the program is executed, I could find no data in the PDF file. When I check in SM37 and SP02, both the JOB and the SPOOL are created. What I feel is the program is not picking the spool id at the run time. Could any one help me in this regard how to proceed.
Please find the code below.
Program 1.
LOOP AT pernr.
CLEAR p_job.
p_stim = p_stim + 120.
CONCATENATE'ITSlip' pernr-low p_job sy-datum INTO p_job SEPARATED BY
space.
CALL FUNCTION 'JOB_OPEN'
EXPORTING
jobname = p_job
sdlstrtdt = p_sdat
sdlstrttm = p_stim
IMPORTING
jobcount = l_jobcount.
SUBMIT ZPR022_INNCOMETAX_REPORT_COPY1
WITH pnptimr6 = 'X'
WITH pnpbegda = period-low
WITH pnpendda = period-high
WITH pnppernr-low = pernr-low
WITH pnpabkrs-low = 'IN'
VIA JOB p_job
NUMBER l_jobcount
TO SAP-SPOOL WITHOUT SPOOL DYNPRO
SPOOL PARAMETERS ls_params
WITH immediately = 'X'
KEEP IN SPOOL = 'X'
AND RETURN.
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
jobcount = l_jobcount
jobname = p_job
strtimmed = 'X'
PRDMINS = 2.
sdlstrtdt = p_sdat
sdlstrttm = p_stim.
ENDLOOP.
Program 2.
IF sy-batch EQ 'X'.
LOOP AT pnppernr.
SELECT SINGLE * FROM pa0105
WHERE pernr EQ pnppernr-low
AND subty EQ '0010'
AND endda EQ '99991231'.
p_email1 = pa0105-usrid_long..
PERFORM get_job_details.
PERFORM obtain_spool_id.
PERFORM convert_spool_to_pdf.
PERFORM process_email.
IF sy-sysid = c_dev.
WAIT UP TO 5 SECONDS.
SUBMIT rsconn01 WITH mode = 'INT'
WITH output = 'X'
AND RETURN.
ENDIF.
ENDLOOP.
ELSE.
SKIP.
WRITE:/ 'Program must be executed in background in-order for spool'
'request to be created.'.
EXPORT gd_spool_nr TO MEMORY ID 'SPOOLTOPDF'.
ENDIF.
ENDFORM. " SEND_MAIL
*& Form get_job_details
text
--> p1 text
<-- p2 text
FORM get_job_details .
Get current job details
CALL FUNCTION 'GET_JOB_RUNTIME_INFO'
IMPORTING
eventid = gd_eventid
eventparm = gd_eventparm
external_program_active = gd_external_program_active
jobcount = gd_jobcount
jobname = gd_jobname
stepcount = gd_stepcount
EXCEPTIONS
no_runtime_info = 1
OTHERS = 2.
ENDFORM. " get_job_details
*& Form obtain_spool_id
text
--> p1 text
<-- p2 text
FORM obtain_spool_id .
CHECK NOT ( gd_jobname IS INITIAL ).
CHECK NOT ( gd_jobcount IS INITIAL ).
SELECT * FROM tbtcp
INTO TABLE it_tbtcp
WHERE jobname = gd_jobname
AND jobcount = gd_jobcount
AND stepcount = gd_stepcount
AND listident <> '0000000000'
ORDER BY jobname
jobcount
stepcount.
READ TABLE it_tbtcp INTO wa_tbtcp INDEX 1.
IF sy-subrc = 0.
MESSAGE s004(zdd) WITH gd_spool_nr.
gd_spool_nr = wa_tbtcp-listident.
MESSAGE s004(zdd) WITH gd_spool_nr.
ELSE.
MESSAGE s005(zdd).
ENDIF.
ENDFORM. " obtain_spool_id
*& Form convert_spool_to_pdf
text
--> p1 text
<-- p2 text
FORM convert_spool_to_pdf .
CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
EXPORTING
src_spoolid = gd_spool_nr
no_dialog = c_no
dst_device = c_device
IMPORTING
pdf_bytecount = gd_bytecount
TABLES
pdf = it_pdf_output
EXCEPTIONS
err_no_abap_spooljob = 1
err_no_spooljob = 2
err_no_permission = 3
err_conv_not_possible = 4
err_bad_destdevice = 5
user_cancelled = 6
err_spoolerror = 7
err_temseerror = 8
err_btcjob_open_failed = 9
err_btcjob_submit_failed = 10
err_btcjob_close_failed = 11
OTHERS = 12.
CHECK sy-subrc = 0.
Transfer the 132-long strings to 255-long strings
LOOP AT it_pdf_output.
TRANSLATE it_pdf_output USING ' ~'.
CONCATENATE gd_buffer it_pdf_output INTO gd_buffer.
ENDLOOP.
TRANSLATE gd_buffer USING '~ '.
DO.
it_mess_att = gd_buffer.
APPEND it_mess_att.
SHIFT gd_buffer LEFT BY 255 PLACES.
IF gd_buffer IS INITIAL.
EXIT.
ENDIF.
ENDDO.
ENDFORM. " convert_spool_to_pdf
*& Form process_email
text
--> p1 text
<-- p2 text
FORM process_email .
DESCRIBE TABLE it_mess_att LINES gd_recsize.
CHECK gd_recsize > 0.
PERFORM send_email USING p_email1.
ENDFORM. "process_email
FORM send_email USING p_email.
CHECK NOT ( p_email IS INITIAL ).
REFRESH it_mess_bod.
Default subject matter
gd_subject = 'Subject'.
gd_attachment_desc = 'IT Declaration'.
CONCATENATE 'ITSLIP' ' ' INTO gd_attachment_name.
it_mess_bod = 'IT FORM for this month'.
APPEND it_mess_bod.
it_mess_bod = 'Message Body text, line 2...'.
APPEND it_mess_bod.
If no sender specified - default blank
IF p_sender EQ space.
gd_sender_type = space.
ELSE.
gd_sender_type = 'INT'.
ENDIF.
Send file by email as .xls speadsheet
PERFORM send_file_as_email_attachment
TABLES it_mess_bod
it_mess_att
USING p_email1
'MindTree Payroll team'
'PDF'
gd_attachment_name
gd_attachment_desc
p_sender
gd_sender_type
CHANGING gd_error
gd_reciever.
ENDFORM. " process_email
*& Form send_file_as_email_attachment
text
-->P_IT_MESS_BOD text
-->P_IT_MESS_ATT text
-->P_P_EMAIL text
-->P_4422 text
-->P_4423 text
-->P_GD_ATTACHMENT_NAME text
-->P_GD_ATTACHMENT_DESC text
-->P_P_SENDER text
-->P_GD_SENDER_TYPE text
<--P_GD_ERROR text
<--P_GD_RECIEVER text
FORM send_file_as_email_attachment TABLES it_message
it_attach
USING p_email
p_mtitle
p_format
p_filename
p_attdescription
p_sender_address
p_sender_addres_type
CHANGING p_error
p_reciever.
DATA: ld_error TYPE sy-subrc,
ld_reciever TYPE sy-subrc,
ld_mtitle LIKE sodocchgi1-obj_descr,
ld_email LIKE somlreci1-receiver,
ld_format TYPE so_obj_tp ,
ld_attdescription TYPE so_obj_nam ,
ld_attfilename TYPE so_obj_des ,
ld_sender_address LIKE soextreci1-receiver,
ld_sender_address_type LIKE soextreci1-adr_typ,
ld_receiver LIKE sy-subrc.
DATA: t_packing_list LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,
t_contents LIKE solisti1 OCCURS 0 WITH HEADER LINE,
t_receivers LIKE somlreci1 OCCURS 0 WITH HEADER LINE,
t_attachment LIKE solisti1 OCCURS 0 WITH HEADER LINE,
t_object_header LIKE solisti1 OCCURS 0 WITH HEADER LINE,
w_cnt TYPE i,
w_sent_all(1) TYPE c,
w_doc_data LIKE sodocchgi1.
ld_email = p_email.
ld_mtitle = p_mtitle.
ld_format = p_format.
ld_attdescription = p_attdescription.
ld_attfilename = p_filename.
ld_sender_address = p_sender_address.
ld_sender_address_type = p_sender_addres_type.
Fill the document data.
w_doc_data-doc_size = 1.
Populate the subject/generic message attributes
w_doc_data-obj_langu = sy-langu.
w_doc_data-obj_name = 'SAPRPT'.
w_doc_data-obj_descr = ld_mtitle .
w_doc_data-sensitivty = 'F'.
Fill the document data and get size of attachment
CLEAR w_doc_data.
READ TABLE it_attach INDEX w_cnt.
w_doc_data-doc_size =
( w_cnt - 1 ) * 255 + STRLEN( it_attach ).
w_doc_data-obj_langu = sy-langu.
w_doc_data-obj_name = 'SAPRPT'.
w_doc_data-obj_descr = ld_mtitle.
w_doc_data-sensitivty = 'F'.
CLEAR t_attachment.
REFRESH t_attachment.
t_attachment[] = it_attach[].
Describe the body of the message
CLEAR t_packing_list.
REFRESH t_packing_list.
t_packing_list-transf_bin = space.
t_packing_list-head_start = 1.
t_packing_list-head_num = 0.
t_packing_list-body_start = 1.
DESCRIBE TABLE it_message LINES t_packing_list-body_num.
t_packing_list-doc_type = 'RAW'.
APPEND t_packing_list.
Create attachment notification
t_packing_list-transf_bin = 'X'.
t_packing_list-head_start = 1.
t_packing_list-head_num = 1.
t_packing_list-body_start = 1.
DESCRIBE TABLE t_attachment LINES t_packing_list-body_num.
t_packing_list-doc_type = ld_format.
t_packing_list-obj_descr = ld_attdescription.
t_packing_list-obj_name = ld_attfilename.
t_packing_list-doc_size = t_packing_list-body_num * 255.
APPEND t_packing_list.
Add the recipients email address
CLEAR t_receivers.
REFRESH t_receivers.
t_receivers-receiver = ld_email.
t_receivers-rec_type = 'U'.
t_receivers-com_type = 'INT'.
t_receivers-notif_del = 'X'.
t_receivers-notif_ndel = 'X'.
APPEND t_receivers.
CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
EXPORTING
document_data = w_doc_data
put_in_outbox = 'X'
sender_address = ld_sender_address
sender_address_type = ld_sender_address_type
commit_work = 'X'
IMPORTING
sent_to_all = w_sent_all
TABLES
packing_list = t_packing_list
contents_bin = t_attachment
contents_txt = t_attachment
contents_txt = it_message
receivers = t_receivers
EXCEPTIONS
too_many_receivers = 1
document_not_sent = 2
document_type_not_exist = 3
operation_no_authorization = 4
parameter_error = 5
x_error = 6
enqueue_error = 7
OTHERS = 8.
Populate zerror return code
ld_error = sy-subrc.
Populate zreceiver return code
LOOP AT t_receivers.
ld_receiver = t_receivers-retrn_code.
ENDLOOP.
ENDFORM. "send_file_as_email_attachment
Points will be rewarded.
Regards,
BalajiHi,
I think you are retrieving the spool before the entire spool is generated.
Put the following logic to retrieve spool iD
CHECK WHETHER STATUS OF JOB IS COMPLETED OR CANCELLED
WHILE 1 = 1.
GET THE JOB STEPLIST WHICH HAS THE SPOOL NUMBER
CALL FUNCTION 'BP_JOB_READ'
EXPORTING
job_read_jobcount = w_jobcount
job_read_jobname = w_jobname
job_read_opcode = '35'
JOB_STEP_NUMBER =
IMPORTING
job_read_jobhead = wa_jobhead
TABLES
job_read_steplist = i_jobsteplist
CHANGING
RET =
EXCEPTIONS
invalid_opcode = 1
job_doesnt_exist = 2
job_doesnt_have_steps = 3
OTHERS = 4
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
BEGIN OF INSERTION U179942 E1BK928781
IF STATUS OF JOB IS COMPLETED(F) OR CANCELLED(A)
READ THE JOBSTEPLIST & GET THE SPOOL NUMBER
IF wa_jobhead-status = c_a OR wa_jobhead-status = c_f.
READ TABLE i_jobsteplist INTO wa_jobsteplist INDEX 1.
CHECK wa_jobsteplist-listident <> space.
w_spool_number = wa_jobsteplist-listident.
EXIT.
ENDIF.
ENDWHILE.
Best regards,
Prashant -
InsertPage RaiseError: An incorrect structure was found in the PDF file
Hi,
I am trying to build a button script that will create a new document, copy (insert) from the first page of the open document, save it, then close it. I believe the part where it gets tricky -- and possibly not doable -- is that the original (source) document uses a template; full of form fields to possibly be spawned off as new pages.
Given the above, ideally the user of the form can click on the "save new page" button: it creates anj Inserted copy of the first form page, cleared of content if any has been entered, and not including any other pages that may have been spawned.
With the code I am using, it currently creates the copy of the page and it inserts it as the zeroeth page (ahead of a blank page I intend to add code later to delete) and saves it. However, there are a couple of problems that come up with this. First is the error code that opens in the debugger:
RaiseError: An incorrect structure was found in the PDF file
Doc.insertPages:29:AcroForm:Save New Form:Annot1:MouseUp:Action1
===> An incorrect structure was found in the PDF file
Despite the error it does still save the page (form copy) as mentioned above. However, if you try to start working with it, it lets you know that there are no form fields on the document (even though they are all there and seemingly functional). When I look to edit the fields, it will then ask you if you want to try to recognize the fields. If I click on "yes", it says it was unable to, but then the form opens up with all of the field names perfectly matching the original. If I click on "no" it just opens the page with all of the fields perfectly matching again. So I feel like I am close to being able to do this!
I am using the following code to produce my results:
(In the JavaScript "app" folder, I have the following trusted functions:)
myTrustedMenu = app.trustedFunction(function(name)
app.beginPriv();
app.execMenuItem(name);
app.endPriv();
myTrustedSaveAs = app.trustedFunction(function(doc, namePath)
app.beginPriv();
doc.saveAs(namePath);
app.endPriv();
myTrustedNewDoc = app.trustedFunction(function()
app.beginPriv();
var doc = app.newDoc();
app.endPriv();
return doc;
myTrustedInsertPage = app.trustedFunction(function(doc, namePath)
app.beginPriv();
doc.insertPages ({
nPage: -1,
cPath: namePath,
nStart: 0
app.endPriv();
(On the "Save New Form" button, the following code is activated:)
// First split document path into an array
var aPathComps = this.path.split("/");
// Get File Name off end of array
var myFileName = aPathComps.pop();
var pathway = aPathComps.join("/");
var myDoc = myTrustedNewDoc();
myTrustedSaveAs(myDoc, pathway + "/test.pdf");
myTrustedInsertPage(myDoc, this.path);
//myDoc.resetForm();
//myDoc.closeDoc(true);
I apologize for the long post and I appreciate anyone who takes the time to look into this issue for me.
Thanks,
MikeMikeIs2C wrote:
You nailed it TSN! Deleting the tags did the trick. Thank you so much for your help! Just an FYI for any of you fellow "noobs" that might be referencing this discussion, to open the "Tabs" view (in Adobe Acrobat Pro XI in my case) go to View > Show/Hide > Navigation Panels > Tags. I looked all over the place for that until I found a document that mentioned how to open it.
Thanks for pointing out specifically how to get here. Thanks to the all for this post!
I also encountered this error, "An incorrect structure was found in the PDF file" from my published MadCap Flare user guide. I am attempting to find a way to build a bridge between Flare and Google documents for corporate-wide collaboration. Thus far, it's a crazy challenge finding a way to produce gdocs from Flare output. Neither product makes this easy. The closest I can get is by publishing the Flare doc as a PDF... but then I must break that document down into 2mb chucks...which led me to this problem, after attempting to use the Adobe Acrobat splitting tool.
Question:
What is the root cause of these bad tags. There are a LOT of them! Is this a fault in the way MadCap Flare creates a PDF document?
Yes, deleting some of the tags will allow me to finally split a PDF document. Unfortunately, this error occurs in all my published PDF documents, thus preventing me from automating (scripting) this split and then conversion to Google Docs!
Thank you
Maybe you are looking for
-
I upgraded the ios my Ipod touch 4th gen from 4.2.1 to 5.1.1.
I accidently switched on the wifi sync. Since then, neither my itunes nor my windows 7 pc has been able to detect my ipod. It only charges when i connect it with the cable. Ive tried everything given on the apple website. Please help
-
Mac Mini login not displayed after screensaver
I have a Mac Mini that routinely (several times a week) will not display the login screen after the screensaver has kicked in. The screensaver is running find (e.g. changing which pictures are displayed) but when you move the mouse to stop the screen
-
I like to make a disk image of the partition with the operating system on it from time to time as a backup to an external hard drive. Works fine with my Powerbook G4 but the last couple of times I've tried to use disk utility to make such a disk imag
-
Need Permission for Firefox Update?!
More permissions problems in Leopard. I've been trying to install the latest version of Firefox (2.0.1.14 or something to that effect) only to have it tell me at start-up that the update can't be installed because I do not have sufficient permission
-
Web server log not show byte transfer for php
I added php module to iWS 6.0 it work fine but access log not show byte transfer information for php. How can I do?