The Fine Art of Listening

As much as we love getting positive feedback, we like constructive negative feedback even more. So, when someone let us know that PDFTextStream didn’t meet their expectations, we moved fast to change that. When we released PDFTextStream, we were pretty confident in its abilities and its completeness. There’s a lot of *stuff* to handle when building something that is going to be consuming and processing PDF files — there’s some significant variability in how the PDF specification is implemented by various document producers. We obviously want PDFTextStream to handle anything that is thrown at it, and I think we’ve succeeded to a large degree (at least, the excellent feedback we’ve received so far is a very good indication). So, you can imagine our reaction when we received an email from Leonard Rosenthol about a week or two ago. Leonard is the CTO of PDF Sages, a very well-known consultancy that specializes in PDF document products, services, and workflows. It turns out that Leonard, after running some PDF files through our online demo, was *disappointed*. As much as we love getting positive feedback, we like constructive negative feedback even more. Leonard was disappointed because PDFTextStream didn’t support XMP (Extensible Metadata Platform, Adobe’s XML-based embedded metadata tagging system). Now, we knew this, but we were planning on implementing support for it in some later version of PDFTextStream since XMP metadata streams usually just duplicate the metadata that is otherwise available via other sources in PDF files. For the most part, extensive use of XMP metadata streams is confined to custom workflows, higher-end prepress environments, and other areas that we were not planning on addressing for some time. However, all that doesn’t make Leonard less disappointed, and I knew that it would be completely irresponsible to rationalize his concerns away. So, we did just the opposite: we scrambled, worked our tails off, and added XMP stream extraction support to PDFTextStream (starting with yesterday’s release of v1.2). So, what’s the point? We care about what our customers think and what they need. When one of you is disappointed, we want to hear about it, and fix the problem, ASAP. Sure, that’s probably clichéd notion, but we actually try to live up to that ideal. I hope someone notices. . .