Using the Mako Core SDK to modify documents in Microsoft’s Universal Print

Over the past year, Microsoft has been working hard to bring its new Cloud printing service, Universal Print, to general availability.

As a part of Universal Print, developers get access to a set of Graph APIs that allows analysis and modification of print job payload data. This feature enables a few different scenarios, including adding security (e.g. redactions or watermarks) to a Universal Print-based workflow.

As a curious engineer, I wanted to see how different it would be for an independent software vendor (ISV) to use our Mako™ Core SDK to modify a print job flowing through Universal Print, instead of using a more traditional route of using a virtual printer driver.

Thinking about the workflow a little more, I came up with the following design:

Using the Mako SDK to modify documents in Universal Print.
Using the Mako SDK to modify documents in Universal Print.

In the design above, we can see the end-user’s Word document gets printed to a virtual printer. This allows the ISV to be notified of the job, and modify it accordingly using Mako. Once modified, the ISV then redirects the job on to the physical printer for printing.

There’s a couple of nice things about this design:

Firstly, it uses the Graph API to access Universal Print, which is an easy-to-use and well documented REST API. Secondly, since the functionality is accessed via a REST API, it allows our ISV service to be written in whichever Mako supported language we like.

I chose C# to make best use of the C# Graph API SDK.

Developing the service

There are five main steps to developing the service:

  1. Handle print job notifications
  2. Download the print job payload
  3. Modify the payload
  4. Upload the payload
  5. Redirect to the target printer

Handle print job notifications

To be notified of print jobs in Universal print, you can use the Graph’s change notifications. These will allow you to sign up to a notification, which will call a provided webhook.

Download the print job payload

Once we have notification that a print job has been sent to our virtual printer, we can start downloading its payload.

Here we use the appropriate Graph APIs, along with standard Graph authentication to access the print job’s document. We then simply save it to disk.

Modify the payload

Once we have the document on disk (although Mako can also modify streams too!), we can open the document and modify it using Mako’s document object model (DOM).

Alternatively, Mako can also convert from one page description language (PDL) to another. This is useful in situations where your destination printer doesn’t support the input PDL.

Upload the payload

Uploading the modified document is straightforward. This time we use the Graph API to create an upload session, and use the WebClient class to put the document back into the original print job.

Redirect to the target printer

And finally, after the print job has been updated, we can redirect it onto another printer. This redirection also automatically completes the print job and task.

Alternatively, if we want to be a little more green, we could always send the document to OneDrive, Sharepoint, or another document management system. After doing so, you then complete the print job and its associated task.

See it in action

We actually coded this demo live in our last Mako webinar, showing an implementation where an ISV wants to automatically redact content.

Access the code directly at our GitHub repository or watch the webinar recording below:

Try it out

We’re keen to talk to you about your Universal Print project and see how we can help. Contact us here.

For more information about Mako, visit globalgraphics.com/mako.

About the author

Andy Cardy, Principal Engineer at Global Graphics Software
Andy Cardy, Principal Engineer at Global Graphics Software

Further reading:

Improving PDF accessibility with Structure Tagging

Be the first to receive our news updates and product news. Why not subscribe to our monthly newsletter? Subscribe here

Follow us on LinkedIn and Twitter

Compensating for blocked or deviated nozzles

As digital presses become wider and higher resolution, supporting additional inks beyond CMYK, the total number of nozzles required per press increases, which in turn raises the likelihood of at least one of those nozzles failing to jet or becoming deviated (and needing to be disabled). Each nozzle that is out will result in a lack of ink where it should have been in a straight line along the direction of print.

One obvious response would be to fix the problematic nozzles, when they have been detected, but this kind of physical intervention interrupts production and can be impractical. Replacing the affected printhead altogether is another possibility, but again this will have an unwelcome financial impact.

Our sister company, Meteor Inkjet, offers NozzleFix™, an embedded software/hardware solution to compensate for missing nozzles.  But for digital printing equipment which does not incorporate Meteor printhead electronics, software compensation may also be beneficial.  In this post, we will look at a software-based approach where good working nozzles can compensate for any misbehaving neighbors as required.

Nozzle-Out compensation in software

As the word “compensation” suggests, this solution works by telling certain nozzles to jet more ink than they otherwise would have to make up for a deficit caused by nozzles that were not jetting or had to be turned off because they had deviated.

For one-drop screening, this could mean that whenever a drop should have been output by a nozzle that’s out, a nozzle on either side could be asked to jet that drop instead. An alternative to this, which can accommodate any drop size, is to apply compensation before screening, working with intensities rather than drops.

Here’s how it works: when a nozzle is off, the intensity for each pixel associated with that nozzle is used to boost the intensity of neighboring pixels, which are then screened as normal.

This is best understood by way of an example. Consider an 8-bit continuous tone input TIFF™ which has the value 160 for every pixel. If we are using one neighbor on either side of a pixel to compensate, we will add 80 to their intensity before screening. If we are using two neighbors on each side, we would add 40.

The greatly zoomed-in images above illustrate the results after 3-drop screening for this example: the left image has one nozzle out and no compensation; the middle image shows compensation with one neighbor either side; the right image shows the use of two neighbors on each side.

Of course, the impact is best judged from the actual prints, where the combination of high resolution and ink results in an impressive optical illusion!

Image shows nozzles out and then a compensated version

 

The scans above were printed at 1200dpi. The image on the left simulates a number of missing nozzles, which can be seen by the presence of thin horizontal white lines (you may need to enlarge it for the full effect). The image on the right shows the impact of applying compensation to each nozzle neighboring a missing nozzle.

Rapid response and adjustment

A key benefit of this software-based approach is that a rapid response and adjustment can happen as soon as a problematic nozzle is detected. There is no need to wait for engineer and parts availability. Additionally, there is no trade-off to make between taking costly action each time a problematic nozzle presents itself or having a tolerance or threshold where nothing is done until a certain number of quality issues have accumulated.

Learn more about the technologies available to improve the quality of your inkjet output by visiting our website.

About the author

Ian Bolton, Product Manager, Direct
Ian Bolton, Product Manager – Direct

Ian has over 15 years’ experience in industry as a software engineer focusing on high performance. With a passion for problem-solving, Ian’s role as product manager for the Direct range gives him the opportunity to work with printer OEMs and break down any new technology barriers that may be preventing them from reaching their digital printer’s full potential.

Further reading:

  1. What causes banding in inkjet? (And the smart software solution to fix it.)
  2. Streaks and Banding: Measuring macro uniformity in the context of optimization processes for inkjet printing

To be the first to receive our blog posts, news updates and product news why not subscribe to our monthly newsletter? Subscribe here

Follow us on LinkedIn and Twitter

 

Live coding with Mako Core

Last week, my colleague David Stevenson and I ignored all common sense and ran a live coding demo using Mako™. What could have gone wrong!?

Mako is a software development kit that can be used to add a variety of functions into software products, which is why it’s often referred to as the software engineer’s Swiss Army knife.

During the demo we showed how to use Mako to modernize your print infrastructure in three simple ways:

Firstly, we looked at modernization through library consolidation and showed how you can operate on multiple PDLs including PDF, PCL, PostScript® and XPS, all using a single Mako SDK library. We then looked at adopting automated workflows with Mako and demonstrated how to analyze and redact text automatically in a PDF, using Mako’s layout analysis and text search capabilities. Finally, we showed how you can make the most of print infrastructure-as-a-service by integrating Mako with Microsoft’s Universal Print, including modifying and redirecting print jobs.

Thankfully, nothing did go wrong and if you missed it, don’t worry. We recorded everything and you can watch the recording on demand here:

Also, feel free to watch some of our other past webinars on our YouTube channel to find out more about the Mako SDK.

For more information about Mako, visit globalgraphics.com/mako

 

Andy Cardy, Principal Engineer at Global Graphics Software
Andy Cardy, Principal Engineer at Global Graphics Software

The Digimarc interview: Fast, efficient print production with variable data printing

The impact of poorly constructed PDF files on production schedules has increased as press resolution, colorant count, speed, and width rise – greatly increasing the data rate required to drive them.

This increase in data places additional demands on the processing power of the DFE and risks slowing down the digital press: a delay of half a second on every page of a 10,000-page job adds 90 minutes to the whole job, while for a job of a million pages an extra tenth of a second per page adds 24 hours to the total processing time.

In his guide: Full Speed Ahead – How to make variable data PDF files that won’t slow your digital press, Martin Bailey, distinguished technologist at Global Graphics Software, gives some technical recommendations as to how you can make sure that you don’t make a PDF file for a variable data job that will bring a digital press to its knees. It provides objective information for graphic designers, print buyers, production managers, press operators, owners of PSPs, and developers of digital presses and composition tools.

Martin has just released a second edition of the guide and in this film he talks about the updates to Digimarc‘s marketing communications manager, Rob Fay. Digimarc provides additional functionality to Global Graphics’ software platforms and is a sponsor of the guide.

Topics in the interview include:

  • The guide’s purpose and target audiences
  • Background on updates related to the standards PDF/X-6 and PDF/VT-3
  • Differences in the various VDP applications: traceability; trackability; and personalization
  • Recent improvements in DFE (digital front end) technology that are enabling more advanced VDP

Martin Bailey, CTO, Global Graphics Software, and Rob Fay of Digimarc

WATCH THE INTERVIEW HERE

DOWNLOAD THE GUIDE HERE

Further reading:

  1. What’s the best effective photographic image resolution for your variable data print jobs?
  2. Why does optimization of VDP jobs matter?

Is your printer software up to the job? The impact of rising data rates on software evolved from traditional print processes

Direct™ product manager Ian Bolton explores the impact of using software that has evolved from traditional print processes to drive digital inkjet presses as they advance to print faster, in higher resolution, a wider variety of colors and applications. In particular, Ian focuses on the impact that rising data rates have on the workflow:

Digital press software evolved from traditional print processes has already reached its limit. Digital presses are becoming higher resolution – most are moving from 600 dpi to 1200 dpi, quadrupling the data. They’re also becoming deeper, with up to 7 drop sizes – and these drops are being made from a wider variety of colors. Digital presses are also becoming wider, up to 4 meters wide, and faster,  up to 1,000 feet per minute!

And what if you need to print where every item is different? For example, fully personalized – like curtains, flooring, wall coverings, clothing etc. All of these require software that can deliver ultra-high data rates.

Let’s look at how those data rates scale up as digital presses advance:

The next generation presses demand ultra-high data rates
The next generation presses demand ultra-high data rates

If we start with 600 dpi, 20 inches wide, 3 drop sizes and 100 m per minute, then that’s 120 MBps per colorant, which is not too challenging. But once we move up to 1200 dpi, we’ve now quadrupled the data to 480 MBps, which is the read speed of all but the most bleeding-edge solid state drives today.

With printhead, nozzle and roller technology improving, the rated speeds also increase, so what happens when we go up to 300 m per min? It’s now 1.4 GBps and you will need one of those bleeding-edge solid state drives to keep up, bearing in mind you will now be writing as well as reading.

And if we go wider to print our wallcoverings at 40 inches wide, we’re now at 2.8 GBps … and we want our walls to look great close up, so we might be using 7 drop sizes, which takes us up to 5.7 GBps … and this is all just for one colorant!

Based on these numbers, it should be clear now that, for this generation of digital presses and beyond, a disk-based workflow just isn’t going to cut it: reading and writing this amount of data to disk would not actually be fast enough and would require ridiculous amounts of physical storage. This is where software evolved from traditional workflows hits a barrier: the data rate barrier.

To solve this we need to go back to the drawing board. It’s similar to the engineering challenge of moving from propeller-driven aircraft to jets that could break the sound barrier. Firstly, you need to develop a new engine and then you need to commercialize it.

So, if you’re looking for software to power your first or next digital press it’s going to need the right  kind of software engine that isn’t based on disk technology so that you can drive your digital press electronics directly and smash through the data rate barrier. In other words, you need to go Direct.

To learn more about the impact of rising data rates and how you can futureproof your next digital press, visit our website to find out more about going Direct.

Further reading:

Future-proofing your digital press to cope with rising data rates

If you’re interested in calculating data rates take a look at this blog post where you can download your own data rate calculator: Choosing the class of your raster image processor

About the author

Ian Bolton, Product Manager, Direct
Ian Bolton, Product Manager – Direct
Ian has over 15 years’ experience in industry as a software engineer focusing on high performance. With a passion for problem-solving, Ian’s role as product manager for the Direct™ range gives him the opportunity to work with printer OEMs and break down any new technology barriers that may be preventing them from reaching their digital printer’s full potential.

Second edition now available: Full Speed Ahead: How to make variable data PDF files that won’t slow your digital press

At the beginning of 2020, in what we thought was the run-up to drupa, Global Graphics published a new guide called “Full Speed Ahead: How to make variable data PDF files that won’t slow your digital press”. It was designed to complement the recommendations available for how to maximize sales from direct mail campaigns, with technical recommendations as to how you can make sure that you don’t make a PDF file for a variable data job that will bring a digital press to its knees. It also carried those lessons into additional print sectors that are rapidly adopting variable data, such as labels, packaging, product decoration and industrial print, with hints around using variable data in unusual ways for premium jobs at premium margins.

Well, as they say, a lot has happened since then.

And some of that has been positive. At the end of 2020 several new International Standards were published, including a “dated revision” (a 2nd edition) of the PDF 2.0 standard, a new standard for submission of PDF files for production printing: PDF/X-6, and a new standard for submission of variable data PDF files for printing: PDF/VT-3.

We’ve therefore updated Full Speed Ahead to cover the new standards. And at the same time we’ve taken the opportunity to extend and clarify some of the rest of the text in response to feedback on the first edition.

So now you can keep up to date, just by downloading the new edition!

DOWNLOAD THE GUIDE

Further reading:

  1. What’s the best effective photographic image resolution for your variable data print jobs?
  2. Why does optimization of VDP jobs matter?

To be the first to receive our blog posts, news updates and product news why not subscribe to our monthly newsletter? Subscribe here

Follow us on LinkedIn and Twitter

MPI Tech joins the Global Graphics Software Partner Network

MPI Tech joins the Global Graphics Software Partner Network

Leading provider of document management and document output solutions MPI Tech has joined the Global Graphics Software Partner Network as a technology partner.

MPI Tech will enable Global Graphics Software’s Harlequin Direct™ and Fundamentals™ products to support AFP and IPDS  jobs. AFP (Advanced Function Presentation) is the most widely used format for high-speed transactional printing in many industries including finance, insurance, manufacturing, health care and education. IPDS (Intelligent Printer Data Stream) is the print description language (PDL) to print AFP documents online.

MPI Tech offers a range of solutions to process AFPDS and native AFP/IPDS at speeds over 6,000 ipm or convert them into the most popular PDL (PCL, PDF, PDF/A, PS etc) on almost every platform (Windows, AIX, Linux, Solaris, UNIX).

Justin Bailey, managing director of Global Graphics Software commented: “We’re pleased to welcome MPI Tech to our partner network. With a proven technology and know-how for processing AFP or IPDS print jobs, Global Graphics Software turns to MPI Tech as its ‘go-to partner’ when our customers require solutions for these transactional print data-streams.”

MPI Tech has been a licensee of Global Graphics technology for many years, using it for converting to, and processing, PostScript, PDF, and other PDLs.

If you’re interested in joining the Partner Network visit our website to find out more.

 

Image Access joins the Global Graphics Software Partner Network

Image Access offers book, flatbed, sheetfeed, duplex & art scanners for digitizing large format originals for archives, libraries, museums & industry.
Image Access offers book, flatbed, sheetfeed, duplex & art scanners for digitizing large format originals for archives, libraries, museums & industry.

Leading German scanner manufacturer Image Access GmbH has joined the Global Graphics Software Partner Network as a technology partner. The two companies began working together last year to develop a solution that would enable printer vendors to implement a new family of Image Access line scan bars called WideSCAN into their printers to support the creation of PrintFlat™ calibrations. The WideSCAN scan bars, together with PrintFlat, will dramatically increase print quality with minimal impact on overall production time.

PrintFlat technology maximizes the print quality of your printer by addressing common defects found in inkjet printing, including banding and stripes, as well as mottling, streaking and chaining. By adding PrintFlat to a print workflow it helps to boost printer sales and reduce support calls for OEMs by expanding the range of printable jobs and consistently achieving exceptional image quality.

For the PrintFlat process to work, printed target pages need to be scanned and the resultant image data fed into the PrintFlat solution. This is where the Image Access partnership comes into play: the WideSCAN scan bars will be available in various sizes in 12-inch increments, starting at 24 inches, and are the most compact and easy-to-use line scan bars in the industry.

Justin Bailey, managing director of Global Graphics Software commented: “Image Access are known for their experience and innovative use of emerging camera technologies and I’m really pleased to welcome them to our Partner Network. Introducing the new WideSCAN scan bar is a game changer for printer manufacturers. Now they will be able to implement the scan bar into the printer so that calibration and PrintFlat correction can all be done inline on the printer, making that device PrintFlat Ready.”

Image Access has manufactured wide format scanners, including brands Bookeye® and WideTEK®, for more than 25 years.

If you’re interested in joining the Partner Network visit our website to find out more.

 

A passion for software development

If you’re a recent mathematics or computer science graduate, or have a year or two of real software development experience, then we want to hear from you.

 Henry Sanderson, Software Engineer at Global Graphics Software

Meet Henry Sanderson, software engineer at Global Graphics Software. Henry joined us in 2019 on our graduate scheme.

What is your background?

My programming journey started at A-level where I first took an interest in the subject, never having had a formal opportunity to study it before. I followed the path all the way through to graduating with a first-class degree in Computer Games from the University of Essex.

What was the graduate  scheme selection day like?

The day was built around a specific task, which was both fun and challenging. There were some surprises, but they were integral to the experience so they could see how we’d react, which was interesting to say the least. For example, we were working in groups, but we weren’t given much in the way of source control, to see how we’d cope merging our work together at the end. It was a cool way to introduce some chaos.

Tell us a bit about your Global Graphics Graduate Program experience

The scheme is separated into three sections where each is spent in a different discipline of QA, Support, and Development, each lasting about four months. There’s also an initial period where you’re taught the basics and get to integrate with the company for a bit. You learn quite a few tricks that’ll be useful too, one of which being how to use ReSharper to speed up your overall pace of working. I initially thought I’d only be interested in development, but I was enlightened to the other two disciplines in a way that I enjoyed. I was involved in meaningful projects the whole way, so there’s no feeling of apathy since everything you do is useful to the company.

For QA, we were tasked to investigate a new way of implementing UI testing that would be competitive to the current choice, and the result of that was a successful integration of a new UI testing library that was significantly cheaper and didn’t require juggling licenses between PCs.

What has been your experience since graduating the program?

I graduated the program feeling pretty good about my progress made during my time here. I entered this company with very little C++ knowledge and below-average C# knowledge, and on graduation I felt that I was a lot more competent at both, as well as skills beyond just knowing languages: using source control, exploring the parts of IDEs that I took for granted while studying at university and using programs that I’d never even heard of before joining. I’ve definitely grown as a person too. I’m now a developer on the Direct™ product team, which has been a rigorous trial by fire by diving head-first into a C++ codebase. I am certainly happy with where I am in the company now and want to continue to develop myself as a member of the team.

How would you describe the support you received from your mentorship team?

The support I received was instrumental in my development here. It was hugely effective, with just the right amount of assistance given so that it neither felt like handholding nor isolating.

What’s the best thing about working at Global Graphics Software?

The flexibility is amazing. The workday isn’t a fixed block of time, it’s whatever you want it to be (within reason). The ethos is basically “as long as the work gets done, and you turn up to meetings, work however long you want”, which is a boon to someone like me who has trouble getting out of bed promptly.

What is the environment like?

The office in Cambourne has a roomy atmosphere with lots of natural light, with a well-stocked kitchen to handle our metabolic needs. There’s also a huge expanse of green space outside the office too, which is perfect for going for mind-clearing walks.

What is the most exciting thing about your work?

I’m in it for the knowledge gained, since in under two years I feel like my skills have increased greatly. Every task I pick up offers the chance to enrich my understanding somewhere.

How have you found working remotely?

Before the pandemic, I very rarely worked from home, but now having done it consecutively every day since early March, I’m very much used to it and don’t think I could return to normal. The company has really embraced working from home and have implemented the systems required to make it work well, to the point that I don’t really feel disadvantaged from the situation imposed on me.

Have you taken part in any of the social events?

I’m a fan of the board game nights that were picking up steam shortly before lockdown, as well as the Shed meetups.

What advice would you give this year’s graduates?

As long as you have the enthusiasm to learn and grow, and can go with the flow, there’s nothing to really worry about. ‘Don’t suffer in silence’ is the mantra to grow here. Ask questions when you get stuck or if you need something explained.

If you’re interested in joining the Global Graphics Software Graduate Program visit our web page to find out more:
https://www.globalgraphics.com/company/careers/graduate-program

Improving PDF accessibility with Structure Tagging

In this week’s post, Global Graphics Software’s principal engineer, Andrew Cardy, explores the structure tagging API in the Mako™ Core SDK. This feature is particularly valuable as it allows developers to create PDFs that can be read by screen readers, such as Jaws®. This helps blind or partially sighted users unlock the content of a PDF.  Here, Andy explains how to use the structure tagging API in Mako to tag both text and images:

What can we Structure Tag?

Before I begin, let’s talk about PDF: PDF is a fixed-format document. This means you can create it once, and it should (aside from font embedding or rendering issues) look identical across machines. This is obviously a great thing for ensuring your document looks great on your user’s devices, but the downside is that some PDF generators can create fixed content that is ordered in a way that is hard for screen readers to understand.

Luckily Mako also has an API for page layout analysis. This API will analyze the structure of the PDF, and using various heuristics and techniques, will group the text on the page together in horizontal runs and vertical columns. It’ll then assign a page reading order.

The structure tagging API makes it easy to take the layout analysis of the page and use it to tag and structure the text. So, while we’re tagging the images, we’ll tag the text too!

Mako’s Structure Tagging API

Mako’s structure tagging API is simple to use. Our architect has done a great job of taking the complicated PDF specification and distilling it down to a number of useful APIs.

Let’s take a look at how we use them to structure a document from start to finish:

Setting the Structure Root

Setting the root structure is straight forward. Firstly, we create an instance of IStructure and set it in the document.

Next we create an instance of a Document level IStructureElement and add that to the structure element we’ve just created.

One thing that I learnt the hard way, is that Acrobat will not allow child structures to be read by a screen reader if their parent has alternative (alt) text set.

Add alternate text only to tags that don’t have child tags. Adding alternate text to a parent tag prevents a screen reader from reading any of that tag’s child tags. (Adobe Acrobat help)

Originally, when I started this research project, I had alt text set at the document level, which caused all sorts of confusion when my text and image alt text wasn’t read!

Using the Layout Analysis API

Now that we’ve structured the document, it’s time to structure the text. Firstly, we want to understand the layout of the page. To do this, we use IPageLayout. We give it a reference to the page we want to analyze, then perform the analysis on it.

Now the page has been analyzed, it’s easy to iterate through the columns and nodes in the page layout data.

Tagging the text

Once we’ve found our text runs, we can tag our text with a span IStructureElement. We append this new structure element to the parent paragraph created while we were iterating over the columns.

We also tag the original source Mako DOM node against the new span element.

Tagging the images

Once the text is structured, we can structure the images too.

Earlier, I used Microsoft’s Vision API to take the images in the document and give us a textual description of them. We can now take this textual description and add it to a figure IStructureElement.

Again, we make sure we tag the new figure structure element against the original source Mako DOM image.

Notifying Readers of the Structure Tags

The last thing we need to do is set some metadata in the document’s assembly, this is straight forward enough. Setting this metadata helps viewers to identify that this document is structure tagged.

Putting it all Together

So, after we’ve automated all of that, we now get a nice structure, which, on the whole, flows well and reads well.

We can see this structure in Acrobat DC:

And if we take a look at one of the images, we can see our figure structure now has some alternative text, generated by Microsoft’s Vision API. The alt text will be read by screen readers.

Figure properties dialogue
Figure properties dialogue

It’s not perfect, but then taking a look at how Adobe handles text selection quite nicely illustrates just how hard it is to get it right. In the image below, I’ve attempted to select the whole of the title text in Acrobat.

Layout analysis is hard to get right!

In comparison, our page layout analysis seems to have gotten these particular text runs spot on. But how does it fair with the Jaws screen reader? Let’s see it in action!

Struture tagging with Mako SDK

So, it does a pretty good job. The images have captions automatically generated, there is a sense of flow and most of the content reads in the correct order. Not bad.

Printing accessible PDFs

You may be aware that the Mako SDK comes with a sample virtual printer driver that can print to PDF. I want to take this one step further and add our accessibility structure tagging tool to the printer driver. This way, we could print from any application, and the output will be accessible PDF!

In the video below I’ve found an interesting blog post that I want to save and read offline. If I were partially sighted, it may be somewhat problematic as the PDF printer in Windows 10 doesn’t provide structure tagging, meaning that the PDF I create may not work so well with my combination of PDF reader and screen reader. However, if I throw in my Mako-based structure and image tagger, we’ll see if it can help!

Structure tagging video

Of course, your mileage will vary and the quality of the tagging will depend on the quality and complexity of the source document. The thing is, structural analysis is a hard problem, made harder sometimes by poorly behaving generators, but that’s another topic in itself. Until all PDF files are created perfectly, we’ll do the best we can!

Want to give it a go?

Please do get in touch if you’re interested in having a play with the technology, or just want to chat about it.

Andy Cardy, Principal Engineer at Global Graphics Software
Andy Cardy, Principal Engineer at Global Graphics Software

Andy Cardy is a Principal Engineer for Global Graphics Software and a Developer Advocate for the Mako SDK.

Find out more about Mako’s features in Andy’s coding demo:

SHARPEN THE SAW – A LIVE CODING DEMO USING MAKO™

Sharpen the Saw: Mako SDK demo

In this session Andy uses coding in C++ and C# to show you three complex tasks that you can easily achieve with Mako:
• PDF rendering – visualizing PDF for screen and print (15 mins)
• Using Mako in Cloud-ready frameworks (15 mins)
• Analyzing and editing with the Mako Document Object Model (15 mins)

To be the first to receive our blog posts, news updates and product news why not subscribe to our monthly newsletter? Subscribe here

Follow us on LinkedIn and Twitter