You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2013/10/28 19:13:02 UTC
svn commit: r1536463 -
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/PDFParser.java
Author: lehmi
Date: Mon Oct 28 18:13:01 2013
New Revision: 1536463
URL: http://svn.apache.org/r1536463
Log:
PDFBOX-1744: add a default value if the version is missing as proposed by Chris Bamford
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/PDFParser.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/PDFParser.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/PDFParser.java?rev=1536463&r1=1536462&r2=1536463&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/PDFParser.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/PDFParser.java Mon Oct 28 18:13:01 2013
@@ -58,6 +58,10 @@ public class PDFParser extends BaseParse
private static final String PDF_HEADER = "%PDF-";
private static final String FDF_HEADER = "%FDF-";
+
+ private static final String PDF_DEFAULT_VERSION = "1.4";
+ private static final String FDF_DEFAULT_VERSION = "1.0";
+
/**
* A list of duplicate objects found when Parsing the PDF
* File.
@@ -352,20 +356,39 @@ public class PDFParser extends BaseParse
*/
if (header.startsWith(PDF_HEADER))
{
- if(!header.matches(PDF_HEADER + "\\d.\\d"))
+ if (!header.matches(PDF_HEADER + "\\d.\\d"))
{
- String headerGarbage = header.substring(PDF_HEADER.length()+3, header.length()) + "\n";
- header = header.substring(0, PDF_HEADER.length()+3);
- pdfSource.unread(headerGarbage.getBytes("ISO-8859-1"));
+
+ if (header.length() < PDF_HEADER.length() + 3)
+ {
+ // No version number at all, set to 1.4 as default
+ header = PDF_HEADER + PDF_DEFAULT_VERSION;
+ LOG.debug("No pdf version found, set to " + PDF_DEFAULT_VERSION + " as default.");
+ }
+ else
+ {
+ String headerGarbage = header.substring(PDF_HEADER.length() + 3, header.length()) + "\n";
+ header = header.substring(0, PDF_HEADER.length() + 3);
+ pdfSource.unread(headerGarbage.getBytes("ISO-8859-1"));
+ }
}
}
else
{
- if(!header.matches(FDF_HEADER + "\\d.\\d"))
+ if (!header.matches(FDF_HEADER + "\\d.\\d"))
{
- String headerGarbage = header.substring(FDF_HEADER.length()+3, header.length()) + "\n";
- header = header.substring(0, FDF_HEADER.length()+3);
- pdfSource.unread(headerGarbage.getBytes("ISO-8859-1"));
+ if (header.length() < FDF_HEADER.length() + 3)
+ {
+ // No version number at all, set to 1.0 as default
+ header = FDF_HEADER + FDF_DEFAULT_VERSION;
+ LOG.debug("No fdf version found, set to " + FDF_DEFAULT_VERSION + " as default.");
+ }
+ else
+ {
+ String headerGarbage = header.substring(FDF_HEADER.length() + 3, header.length()) + "\n";
+ header = header.substring(0, FDF_HEADER.length() + 3);
+ pdfSource.unread(headerGarbage.getBytes("ISO-8859-1"));
+ }
}
}
document.setHeaderString(header);