Xiaohong Yang created TIKA-4276: ----------------------------------- Summary: Tika fails to detect damaged pdf Key: TIKA-4276 URL: https://issues.apache.org/jira/browse/TIKA-4276 Project: Tika Issue Type: Bug Affects Versions: 2.9.2 Reporter: Xiaohong Yang
We use Tika to check file type and extension. However, with some damaged pdf files Tika detects them as text file. Wonder if you can make Tika detect the damaged pdf file as pdf file type and extension. Following is the sample code and the link to the tika-config.xml and the sample PDF file is [https://1drv.ms/u/s!AvHwMs711s9lgfhtXqh0ycQyzqfG2w?e=q6y2es] The operating system is Ubuntu 20.04. Java version is 21. Tika version is 2.9.2 and POI version is 5.2.3. import org.apache.tika.config.TikaConfig; import org.apache.tika.detect.Detector; import org.apache.tika.io.TikaInputStream; import org.apache.tika.metadata.Metadata; import org.apache.tika.metadata.TikaCoreProperties; import org.apache.tika.mime.MediaType; import org.apache.tika.mime.MimeType; import java.io.FileInputStream; public class DetectDamagedPDF { public static void main(String args[]) { try { String filePath = "/home/ubuntu/testdirs/testdir_damaged_pdf/DamagedPDF.pdf"; TikaConfig config = new TikaConfig("/home/ubuntu/testdirs/testdir_damaged_pdf/tika-config.xml"); Detector detector = config.getDetector(); Metadata metadata = new Metadata(); FileInputStream fis = new FileInputStream(filePath); TikaInputStream stream = TikaInputStream.get(fis); metadata.add(TikaCoreProperties.RESOURCE_NAME_KEY, filePath); MediaType mediaType = detector.detect(stream, metadata); MimeType mimeType = config.getMimeRepository().forName(mediaType.toString()); String tikaExtension = mimeType.getExtension(); System.out.println("tikaExtension = " + tikaExtension); } catch(Exception ex) { ex.printStackTrace(); } } } [^Tika_Config_and_Sample_PDF.zip] -- This message was sent by Atlassian Jira (v8.20.10#820010)