Posts tagged "repurposing"

AEM Assets workflow for automatic PDF generation from InDesign files

Many of my Enterprise customers ask how they can use Adobe Experience Manager (AEM) to automate the production of common derivative files from their InDesign files. Derivative files, you ask? InDesign files often represent the “source of truth” for many business documents, from manuals to data sheets to publications and many more types. These documents must be transformed from InDesign into something else (hence the term derivative) in order to be made available on a web site, for instance. The usual method is to export a PDF from InDesign and then upload the PDF as a new asset into the repository. This puts added burden on the author of the InDesign file as well as introducing the possibility of error due to incorrectly set PDF job options. This gets even more complicated if the author must make versions suitable to send to a commercial printer as well as a version that’s optimized for reading online as a PDF. This article provides techniques to automate the production of a web-optimized and print-optimized PDF from any InDesign file that appears in AEM Assets.

This article assumes that you have access to Adobe Experience Manager Assets and InDesign Server. In this example, I use AEM 6.1 and InDesign CC Server 2015, but the technique should work with AEM 5.6.1 and higher and ID Server CS6 and higher. You need to ensure that you have configured your AEM Author environment to work with InDesign server according to the documentation found here. The foundation of any successful integration (beyond configuration!) is the combination of Scripts, Workflow Models, and Workflow Launchers.

You can download a package that contains the scripts and a workflow model you can use today. When you install the package, you will have new scripts located at /etc/dam/indesign/scripts and /etc/workflow/scripts. You will also see a new Workflow Model located at /etc/workflow/models/dam/. The Workflow Launcher must be reconfigured, since I didn’t want to disrupt your existing workflows after you install the package.


Scripts tell AEM or external applications what to do, and they form the basis of any InDesign Server-based solution. There are two sets of scripts used here: one set for InDesign Server to generate the PDFs and the other for AEM to move the resulting files. First, let’s look at the JavaScript to tell InDesign Server what we want it to do and how we want it to respond to the request.

There are a number of InDesign Server scripts included in the basic AEM installation, and I’ve modified /etc/dam/indesign/scripts/PDFExport.jsx to request specific kinds of PDF from InDesign Server.  In addition, the script writes the new PDF files into the InDesign file’s /renditions node. These two scripts are located at /etc/dam/indesign/scripts/PDFExport_Print.jsx and at /etc/dam/indesign/scripts/PDFExport_Web.jsx. I could have easily combined these two operations into one script, but I wanted to leave you the option to easily enable or disable each one according to your requirements. You can also combine them yourself or make them fancier, responding to properties you set on the InDesign file in AEM (via XMP) and read out with InDesign Server. Here is the code for PDFExport_Web.jsx, which is almost identical to PDFExport_Print.jsx. The difference is in the value of pdfExportPreset in line 31, the filename set in line 56, and the function return value set in line 57.

// Export any Indesign document as PDF

//==== get soap arguments ====
if (app.scriptArgs.isDefined("credentials")) {
 var credentials = app.scriptArgs.getValue("credentials");
} else {
 throw "CQ host credentials argument is missing";
if (app.scriptArgs.isDefined("cqHost")) { 
 var host = app.scriptArgs.getValue("cqHost");
} else {
 throw "cqHost argument is missing";
if (app.scriptArgs.isDefined("resource")) { 
 var resourcePath = app.scriptArgs.getValue("resource");
} else {
 throw "resource argument is missing";

try {
 //==== create a temporary folder under InDesign server tmp directory to fetch and export ====
 // added randomness to the folder name
 var exportFolder = new Folder("tmp-" + (new Date().getTime() - Math.floor((Math.random()*10000)+1) ));
 fileName = resourcePath.substring (resourcePath.lastIndexOf ('/'), resourcePath.lastIndexOf ('.'));
 var sourceFile = new File(exportFolder.fullName + fileName + '.indd');
 var outputFile = new File(exportFolder.fullName + fileName + '_web.pdf');
 var pdfExportPreset = "[Web Preset]" // Set your PDF Web-ready Export Preset (joboption) here.
 // You can use any joboption file installed in InDesign Server

 app.consoleout('Fetching resource from CQ: '+resourcePath);
 fetchResource (host, credentials, resourcePath, sourceFile);

 var document =;

 with (app.pdfExportPreferences) {
 viewDocumentAfterExport = false;
 var myPDFExportPreset = app.pdfExportPresets.item(pdfExportPreset);
 document.exportFile(ExportFormat.pdfType, outputFile,myPDFExportPreset);

 // close the document
 //==== remove the original resource and send the export back to CQ ====

 //==== send file to CQ ====
 var target = resourcePath.substring (0, resourcePath.lastIndexOf ('/')) + "/renditions";
 app.consoleout('Posting this file to CQ: '+outputFile);
 app.consoleout('Posting to location: ' + target);
 putResource (host, credentials, outputFile, fileName + '_web.pdf', 'application/pdf', target);
 returnValue = "PDF for Web exported and posted successfully";
} finally {
 //==== remove the temp folder ====
app.consoleout('Finished PDF for Web export using '+pdfExportPreset+' joboptions');

To use these scripts, you need to have a PDF Joboptions file installed in InDesign Server to export your PDF. When you install the package, you will find a new folder at /content/dam/InDesign Server joboptions that contains two PDF Export Presets for InDesign Server. Move these two files to Applications/Adobe InDesign CC Server 2015/Resources/Adobe PDF/settings/mul and then restart InDesign Server to load the new settings.

Now that we have the InDesign Server pieces in place, let’s look at the AEM script. This is an ECMA script, which is very much like JavaScript, and it’s located at /etc/workflow/scripts/move-pdf-renditions.ecma. I’ve written it as a function that’s called twice, once for each PDF rendition, so it’s easy to add or remove other renditions as you see fit. This script will be called from the Workflow Model, which we’ll look at next. Here’s the script code.

var renditionExtension = "pdf";
var mimeType = "application/pdf";

var workflowData = graniteWorkItem.getWorkflowData();


function movePDF (renditionPostfix) {
 if (workflowData.getPayloadType() == "JCR_PATH") {
 var path = workflowData.getPayload().toString();
 var resourceResolver = graniteWorkflowSession.adaptTo(;
 var resource = resourceResolver.getResource(path);
 if (resource !== null) {
 var asset =;
 if (asset !== null) {
 var name =, ".");
 var renditionName = name + "_" + renditionPostfix + "." + renditionExtension;
 var rendition = asset.getRendition(renditionName);
 if (rendition !== null) {
 var renditionResource = resourceResolver.getResource(rendition.path);
 var stream = renditionResource.adaptTo(;
 var targetPath = asset.adaptTo( + "/" + renditionName;
 var assetManager = resourceResolver.adaptTo(;
 assetManager.createAsset(targetPath, stream, mimeType, true);
 } else {
 log.debug("rendition " + renditionName + " cannot be found on asset " + path);
 } else {
 log.debug("Item is not an asset: " + path);
 } else {
 log.debug("Item does not exist: " + path);

Workflow Model

There will be a new Workflow Model in your Workflows list called DAM Update Asset with PDF move located at /etc/workflow/models/dam/update_asset_pdf/. It is similar to and derived from the standard DAM Update Asset workflow that comes with every AEM installation. I have changed one existing step (Media Extraction) and added a new step (a Process step called “Move PDFs from Renditions”).

These two workflow steps are different from the standard DAM Update Assets workflow

These two workflow steps are different from the standard DAM Update Assets workflow

The Media Extraction step is designed to convert InDesign documents to other formats required by AEM Assets for a number of key functionalities. These include generating sub-assets (images that are embedded within the InDesign file), page images, extraction of text, and metadata synchronization, among other things. Media Extraction sends the script (and a pointer to the InDesign file) as its payload to InDesign Server. InDesign Server then runs the script and returns something to AEM. It is important that you do not remove any of the existing scripts that Media Extraction launches, but you can always add additional steps. Here, we added two additional scripts to the workflow step: PDFExport_Print.jsx and PDFExport_Web.jsx

The Print and Web PDF Export scripts have been added to the Media Extraction Workflow Step.

The Print and Web PDF Export scripts have been added to the Media Extraction Workflow Step.

Immediately after Media Extraction, I added a new Process step that executes an ECMA script in AEM. For many users, they will access AEM Assets via their desktop using the AEM Assets Companion tool or the Creative Cloud Desktop tool, so this workflow ensures that they get the renditions they need in a place that’s easy to find. Also, users of AEM Assets will be able to search for these PDFs like any other asset under management. This script copies the PDFs from /renditions as new assets adjacent to the InDesign file. It is best to leave the PDFs in /renditions so that they can be used by components that might offer the PDF as a download, for instance.


The new Process step executes an ECMA script that copies the new PDF files so that they are accessible on the desktop.

Workflow Launcher

Lastly, it is necessary to change the Workflow Launcher that is triggered whenever a file appears in the repository or whenever a file is modified in the repository. I did not include this change in the package so that you can install the package with no impact on your running system. When you are ready and have tuned the scripts for your workflow, then you can enable the Workflow in the Workflow Launcher panel.

In your AEM Author instance, click on Tools>Workflow>Launchers or visit http://localhost:4502/libs/cq/workflow/admin/console/content/launchers.html (of course, point at your Author instance!). Select the /content/dam(/.*/)renditions/original that has no condition on it (see screenshot below) and click on View Properties, and then on Edit.

Select the proper Launcher and view its properties

Select the proper Launcher and view its properties

The Launcher is designed to run a workflow when a specific condition is met. This workflow looks for any file that appears in the repository and then runs the DAM Update Asset workflow on it. You need to change the workflow to DAM Update Asset with PDF Move and then Save the changes.

Change the workflow that is triggered by the Launcher

Change the workflow that is triggered by the Launcher

Once you’ve saved the Launcher, you are ready to test. Upload an InDesign document into AEM using your preferred method. You can use drag and drop in a Browser window, AEM Assets Companion, or CC Desktop Tool. If you happen to catch the InDesign Server console, you will see new entries that report on whether IDS was successful at exporting PDF renditions. In a short while, your new PDF  files will magically appear next to the InDesign file. Now, go ahead an edit that InDesign file and save it back to AEM Assets. Again, the workflow will run and new PDF files will replace the existing ones, ensuring that you always have access to the latest versions. And, since they are assets under management, you can always revert to earlier versions of the PDF by looking at the asset timeline in a browser.


This new workflow and the scripts that support it expose a new behavior for AEM Assets. While convenient for the user, since it automatically generates useful and necessary derivatives of the source InDesign asset, it enforces known good business processes by encapsulating approved PDF Export settings into he workflow. It also reduces errors by automating a task that otherwise would require several configuration steps in InDesign before they could export the PDF.

I hope that you find this useful, and that you use it as a starting point for further InDesign Server automation using AEM Assets.

Share on Facebook

Bridge Survey Results

A few months ago, I asked Creative professionals to share how they used Adobe Bridge. It is very clear from the huge number of responses and the large variety of respondents that I clearly struck a nerve with my questions. I wanted to share those results with you, kind reader, and to acknowledge some of the details provided by the Creative community. Due to the volume of responses, I’ve summarized and consolidated. If you are a respondent and you don’t see yourself quoted, please know that all of the responses have been read and shared here at Adobe.

About You…


The respondents identify themselves with a wide array of jobs. We were looking for a broad spectrum of Bridge users, and we certainly got it! Photographers led the way, but Creative Directors, Graphic Designers, and sole proprietors were prominent as well.

We had a healthy blend of sole proprietors as well as Enterprise Creatives as well. We hear a lot from our individual users and small business users (think small agency or creative shop), but we don’t hear as often from our Enterprise customers. In this Enterprise shops, we saw teams as small as one and as large as 100.

Having this diversity of respondent is important to us. While Bridge is a mainstay for Creatives in general, as we look ahead at the future of Bridge, we want to ensure that whatever we build will continue to keep all Creatives productive while offering some specific benefits to the individual user as well as to the Enterprise Creative. One of the areas of interest across the board was scripting and automation.

More than a few of the individual respondents commented about how they used scripting to automate parts of their Creative process. This might include tagging images, running scripts in Photoshop or Illustrator, or making common items like comp sheets. Many of the Enterprise Creatives told us that they used scripting or even developed their own custom panels to connect to their business process systems like job planning and manufacturing. Automation and connection to other services is definitely important to everyone!

Let’s dig a little deeper into how the respondents spend their day.

Creative focus

On which media do you focus most?

It is clear that today’s Creatives are working on more than one media. This correlates with other research we’ve done over the years. We also heard that having access to all of the Creative Cloud tools as Creative Cloud members has made it possible to branch out into other areas. It is not surprising that there is a clear bias toward Print among the respondents, however, as many Creative professionals have print backgrounds. Web and Mobile focus is emerging but rapidly accelerating as tablets and mobile devices overtake Desktop computers as the primary digital consumption tool. I’ll be interested to revisit this question in a few years.

Impact of Bridge on respondents’ day

How often do you use Adobe Bridge?

Bridge usage across all types of users

Since this survey was about Bridge, we asked how often folks used it. Most of the respondents use it several times a day, which is not surprising. We expected that we would see wide adoption, since this survey was directed at Bridge users specifically. We are happy to have respondents who use it infrequently, however, as it provides valuable data points as we evaluate the reasons why folks choose to use Bridge or not to use Bridge. Here are some quotes from the survey:

I would get lost without Bridge.

Bridge is essential to my workflow.  I have tried using Lightroom as a substitute but it is simply not the tool that is best for the file examination that I do on a day to day basis.

[Bridge] does feel like an old application that is ripe for an overhaul.

We have built our image workflows in a way that makes good use of DNG and metadata (both for asset management and workflow), so Bridge is an interest for me but just as a piece of a larger puzzle of dependancies.

I wish I could show to everybody what we have achieved with Bridge in our image production.

I love Bridge for being simple yet extremely useful, and even with Lightroom I have not been able to create a workflow that does not include Bridge.

EVERYONE I introduce to Bridge instantly becomes a fan. Bridge is one of Adobe’s BEST products but seems to be given the least amount of publicity and attention by Adobe.

We use bridge as the hub for everything in an extremely adobe centric workflow for all our media.

Love bridge use it all the time still surprised to see how many of my clients do not use it.

Most important program of the cloud.

The CC Suite would be almost unusable without Bridge.

We have many, many users (possibly 10-20% of the 600+ reported above) that love using Bridge for their daily file browsing/management, even outside of the custom interfaces that we have built for Bridge. It is a great way to preview and manage files.

I can’t live without it.

I love Bridge! I would be a babbling, incoherent basket case without it.

As you can see, there is a lot of love for Bridge. There is also criticism, and I’d be remiss if I didn’t summarize that here.

It’s too slow.

The cache rebuild time is too long.

Scripting in Bridge CC is too hard.

Lightroom is a way better retouching environment.

Make it work better when browsing network storage.

It crashes all the time.

It takes too much memory.

The current Keyword management is archaic and obsolete.

I hear rumours Bridge isn’t been developed anymore.

These are not all of the critical comments we got, but we wanted you all to know that we read them all and take them to heart. Most of the criticism focused on performance, which we hear loud and clear. As for rumors, you shouldn’t believe rumors. Bridge is alive and well.

Tools you use

Creative Cloud tools that all respondents use regularly

Creative Cloud tools that all respondents use regularly

We took a look at how folks used other tools in their day, as a way to gauge the importance of Bridge to Creative workflows. Bridge is used predominantly as a companion to other apps, which is how it was designed. In fact, it was originally part of Photoshop, but it was so useful that it became its own product and expanded to include integrations with Illustrator and InDesign.

It is no surprise that nearly every respondent uses Photoshop regularly. It is also no surprise that InDesign and Illustrator have high adoption. It is interesting to dig a little deeper into the “other” category. There’s Muse, Acrobat, Mobile Apps, Audition, Lightroom and more in there. It’s clear that Creatives are using a broad spectrum of tools, and that Bridge should remain a general tool rather than one focused specifically on Photoshop, Illustrator and InDesign.

Creative Cloud tools that Multiple-workflow Creatives use regularly

Creative Cloud tools that Multiple-workflow Creatives use regularly

When we sliced the data across workflows, the numbers shifted a little bit. For Multiple-workflow Creatives, the distribution closely correlates with the entire set of respondents. We expected this, as most of the respondents identified themselves as multiple-workflow Creatives. Here are some thoughts

Creative Cloud tools that Print Creatives use regularly

Creative Cloud tools that Print Creatives use regularly

Print-centric Creatives met expectations, with their primary tools being Photoshop, InDesign and Illustrator. There’s not much else to say here, except when we had asked this question just a few years ago, the number of Dreamweaver and Premiere users had been close to zero. This speaks to the transformation of publishing from paper-only to paper and digital. Here’s some comments from the Print-centric Creatives.

Since every application on my computer is a plug-in for Photoshop, you’d think that PS is the most important app on my computer. No. It’s Bridge.

My flow is simple, Bridge, Camera Raw, Photoshop, 3rd Party (if needed) done.

Would love for Bridge to be faster at building thumbnails/previews.

I’m sure there are other ways we can use Bridge to enhance our workflow. I just need time to go in there and research and explore more.

Creative Cloud tools that Web/Mobile Creatives use regularly

Creative Cloud tools that Web/Mobile Creatives use regularly

Web/Mobile-centric Creatives are more broadly distributed in terms of the tools they use. We were pleased to see how prominent Premiere and After Effects usage is, but with so much brand reliance on video for modern marketing, it is not completely surprising. Buried in the Other category are tools like Muse, Edge Animate, and the mobile tools such as Shape and Brush, too. Here’s some comments from the Web/Mobile-centric Creatives.

We have built a central script multi-user system that only works in our network which it ensures that everyone has the last studio color camera profiles (dcp, xmp), the latest script updates, etc. Bridge is a major part of this. It allows our product DB to be merged with image/product metadata. For example, I can automatically, sort my product images by camera ID, but also by focal length and by our product sub category.

I use Bridge instead of Finder/Explorer for all folder and file navigation and I love it.

I would just like it to load faster, sometimes its unusable because of how long it takes.

Creative Cloud tools that Video Creatives use regularly

Creative Cloud tools that Video Creatives use regularly

Video-centric Creatives all seem to use the same set of tools, or it looks that way from the tight correlation between Photoshop, Illustrator, Premiere and After Effects usage. This group was the smallest among the respondents, but we had a reasonable statistical sample. Almost a third of the respondents say they use InDesign, too, which is very interesting. Here is some of their feedback.

Please provide better video playback and performance.

Bridge helps us with scanning and previewing images as well as organizing folders.

Its great for Batch File Renaming and Manual Sorting of Video Clips

What did we learn from this survey?

Overwhelmingly, we heard loud and clear how important Bridge is to you, our customers. We also know how important it is for individual Creatives and Enterprise Creatives alike. Automation and scripting kept coming up across users, as did performance with network file shares and large sets of files.

We also heard a lot of concern about whether Bridge will continue to be part of the Creative Cloud family. I want to reiterate that Bridge is alive and well, and you all are helping to make it better than ever through your direct feedback. Thanks for your honesty and I’m looking forward to sharing what’s next when I can.

Share on Facebook

Use Powerpoint presentations in Adobe DPS

Many of my Enterprise customers have asked for a way to bring PowerPoint content to DPS. While InDesign provides a robust design platform for creating interactive DPS experiences, InDesign isn’t always readily accessible to a salesperson or sales management who need to deploy presentations to their tablet-enabled sales force. In addition, they often have many years of approved presentation content in PowerPoint that is readily available. In order to use that content in DPS, a design team would usually rebuild the content in InDesign or perhaps use a third party tool to export the presentation to HTML and then import it to DPS. With the release of R32.1 of Adobe DPS, Enterprise DPS customers can now export their PowerPoint presentations directly to their DPS accounts using a new PowerPoint add-in. Learn more at the DPS Export Add-in Help Page.

The add-in is available for Windows 7 and higher customers who use PowerPoint 2010 or 2013 in 32bit mode. There is no Macintosh version, as PowerPoint for Mac does not have a add-in architecture similar to Windows. You can download a localized version of the add-in from here.

The add-in supports most animations and even video. The add-in installs the desktop Content Viewer, too, so you don’t need InDesign to proof your presentation before publishing it to the Folio Producer. The ease with which a business user can convert their presentations to DPS is shocking, and I believe that customers will be delighted with the results.

I’ve recorded a short video showing the add-in in action. View it on Youtube.

The add-in supports many of the interactive features in PowerPoint. Below is a table of supported interactive items.

Category Subcategory Content ACV Support Status
Static Content Tables Insert Table Yes
Draw Table Yes
Excel SpreadSheet Yes
Images Picture Yes
Clip Art Yes
Screenshot Yes
Photo Album Yes
Illustations Shapes Yes
SmartArt Yes
Chart Yes
Text Text Box Yes
Header & Footer Yes
WordArt Yes
Date & Time Yes
Slide Number No
Object Yes
Symbols Equation Yes
Symbol Yes
Interactive Content Hyperlink Existing File No
Web Page Yes
Place in This Document First Slide Yes
Last Slide Yes
Next Slide Yes
Previous Slide Yes
Slide Titles Yes
Custom Shows No
Create New Document No
Email Address Yes
Foliomaker does not support the hyperlinks in SmartArt graphic.
(Mouse Click)
Hyperlink to: Next Slide Yes
Previous Slide Yes
First Slide Yes
Last Slide Yes
Last Slide Viewed No
End Show No
Custom Show No
Slide Yes
Other PowerPoint Presentation No
Other File No
Run Program No
Run Macro No
Object Action No
Play Sound No
Highlight Click No
Video Video from File Yes
Video from Web Site No
Clip Art Video (GIF) No
Audio Audio from File (.mp3) Yes
Clip Art Audio (.wav) Yes
Record Audio No
Transitions No


Below is a list of supported animations.

Animation type Desktop & iPad ACV Support Status
Entrance Effects Appear No
Box Yes
Circle Yes
Dissolve In Yes
Peek In Yes
Random Bars Yes
Strips No
Wheel No
Blinds Yes
Checkerboard Yes
Diamond Yes
Fly In Yes
Plus No
Split No
Wedge No
Wipe Yes
Expand Yes
Swivel Yes
Fade Yes
Zoom Yes
Basic Zoom Yes
Float Down Yes
Grow & Turn No
Spinner Yes
Center Revolve Yes
Float up Yes
Rise up Yes
Basic Swivel Yes
Bounce Yes
Curve Up Yes
Flip Yes
Pinwheel No
Whip Yes
Boomerang Yes
Credits Yes
Drop Yes
Float Yes
Spiral In Yes
Emphasis Effects Fill Color Yes
Grow/Shrink Yes
Spin No
Font Color Yes
Line Color Yes
Transparency No
Bold Flash Yes
Complementary Color Yes
Contrasing Color Yes
Desaturate Yes
Object Color Yes
Underline Yes
Brush Color Yes
Complementary Color 2 Yes
Darken Yes
Lighten Yes
Pulse Yes
Color Pulse Yes
Shimmer Yes
Grow With Color Yes
Teeter Yes
Blink Yes
Wave Yes
Bold Reveal No
Exit Effects Blinds No
Checkerboard No
Diamond Yes
Dissolve Out Yes
Peek Out Yes
Random Bars Yes
Strips No
Wheel No
Box No
Circle Yes
Disappear No
Fly Out Yes
Plus Yes
Split No
Wedge No
Wipe No
Contract Yes
Swivel No
Fade Yes
Zoom Yes
Basic Zoom No
Float Down Yes
Shrink & Turn Yes
Spinner Yes
Center Revolve No
Float Up Yes
Sink Down Yes
Basic Swivel No
Bounce Yes
Curve Down Yes
Flip Yes
Pinwheel Yes
Whip Yes
Boomerang Yes
Credits Yes
Drop Yes
Float No
Spiral Out Yes
Motion Paths 4 Point Star Yes
6 Point star Yes
Circle Yes
Diamond Yes
Football Yes
Hexagon Yes
Parallelogram Yes
Right Triangle Yes
Teardrop Yes
5 Point Star Yes
8 Point Star Yes
Crescent Moon Yes
Equal Triangle Yes
Heart Yes
Octagon Yes
Pentagon Yes
Square Yes
Trapezoid Yes
Arc Down Yes
Arc Right Yes
Bounce Left Yes
Curvy Left Yes
Decaying Wave Yes
Diagonal Up Right Yes
Funnel Yes
Left Yes
S Curve 1 Yes
Sine Wave Yes
Spiral Right Yes
Stairs Down Yes
Turn Down Right Yes
Turn Up Right Yes
Wave Yes
Arc Left Yes
Arc Up Yes
Bounce Right Yes
Curvy Right Yes
Diagonal Down Right Yes
Down Yes
Heartbear Yes
Right Yes
S Curve 2 Yes
Spiral Left Yes
Spring Yes
Turn Down Yes
Turn Up Yes
Up Yes
Ziazag Yes
Bean Yes
Curved X Yes
Figure 8 Four Yes
Inverted Square Yes
Loop de Loop Yes
Peanut Yes
Pointy Star Yes
Vertical Figure 8 Yes
Curved Square Yes
Curvy Star Yes
Horizontal Figure8 Yes
Inverted Triangle Yes
Veutron Yes
Plus Yes
Swoosh Yes
Share on Facebook

Embedding YouTube Videos into your DPS project

I get the question all the time: “How can I embed a YouTube video into my DPS project?

My answer: a YouTube video that shows how to embed a YouTube video into your DPS project!

It is possible that InDesign won’t recognize the embed code that you copy and paste from YouTube, so you can always use the Object>Insert HTML option and paste your embed code there. If you want to use the video in a scrollable frame, this method won’t work in CS6. You will need to save the embed code to a file (called something like video.html) and point a Web Content overlay at it, allowing user interaction and turning on auto play.

Share on Facebook

Sending email and email attachments from DPS publications

Many of my customers have asked how to send an email from within a DPS publication. For instance, in a sales enablement situation, it’s often necessary to share documentation after the salesperson has discussed the products or services with their clients. In an earlier blog post, I detailed how to display PDFs and other document types directly in your DPS applications. While this is good, it’s not a leave-behind that many sales people require. I wanted to explore some ways to send email from DPS publications, and here are a few of the ways I concocted this afternoon. (If you have my DPS Examples app installed on your iPad, and you’re reading this blog on your iPad, then tap here to see examples of sending emails from a DPS folio.)

Just send it!

Often, it is necessary to just send an email to a specific address. This is easiest to achieve with a hyperlink or a button with a URL destination that uses the mailto: tag. For instance,!

is a URL that will fire off an email in the device email client. This email will be addressed to with CC to and BCC to Its subject will be Summer Party and the content will be You are invited to a big summer party! It will be sent by the default email account on the device’s email client. Copy that URL into a button URL action in InDesign, and presto, you have an email button.

You can get creative with the content, of course. You can include links to files, so long as the link is a fully formed URL path. For iOS Mail, use the <br> tag to go to a new line. For other mail clients, you’ll have to experiment. Here’s how I set up my email button.

The URL destination:!<br>

sends an email to with the subject Tax Time and

Pay your taxes!

as the message. Most email clients will interpret the link to the PDF as a hyperlink and will allow the reader to click or tap on the link and view the tax form.

Let’s get a little more sophisticated with this now. In InDesign CS6, we can insert HTML directly onto our layouts via the Object>Insert HTML menu. I have created a little form that has two inputs: email address and a menu to choose which file to include as a link in the body of the email message.

Copy and paste the following into your InDesign layout using Object>Insert HTML and preview on your iPad. If you have InDesign CS5 or CS5.5, you can save this as a .html file and point at it in a Web Content overlay.

<style type="text/css">
.emailform {
 height: 100px;
 width: 350px;
 font-family: Verdana, Geneva, sans-serif;
 font-size: 16px;
 font-style: normal;
 text-align: center;
 white-space: normal;
function sendMail() {
 var link = "mailto:"+document.getElementById('emailAddress').value
 + "?"
 + "&subject=" + escape("Pay your Taxes!")
 + "&body=" + escape('Use this form to start the onboarding process.<br><a href="'+document.getElementById('chooseFile').value+'">Download your W-4 form now</a>')
window.location.href = link;
<div class="emailform">
 Email address:
 <input type="text" name="emailAddress" id="emailAddress" />
 <select name="chooseFile" id="chooseFile">
 <option value="">Federal W4</option>
 <option value="">MAINE W4</option>
 <button onclick="sendMail(); return false">Send email</button>


Of course, you will need to modify it to meet your use case, especially whether you want to include the CC line and which files you want in the menu.

Set the InDesign CS6 will automatically create a Web Content Overlay for you, and you need to configure it to your taste. Since I set my background color in CSS to match the background frame color in InDesign, I have set mine to transparent and to autostart with a slight delay so that it will only fire when the user actually views it. You must enable user interactions if you want the user to be able to fill out the form. Note that with iOS Mail, you can use HTML formatting in your message, so have fun with the message body. I believe that this technique only allows about 2000 characters in the body, so you might need to keep your messages short. Also, this javascript method will force the user to agree to be sent to the Mail application from the folio, while the direct URL method won’t. Nevertheless, this is a very flexible and robust solution for creating email forms within your DPS application.

Here’s what my example looks like on the iPad.

Now I tap the Send Email button…

Now I return to my folio and enter some info in the email form…

Pretty neat, eh?

Links to files are OK, but what about attachments?

If you need to send attachments to your email, then you are out of luck with a URL. You will need to implement another method. I’ll describe two of them here.

The easiest to make is a web form with an emailer server-side application as its action. Remember that you can insert HTML forms directly into InDesign CS6 with Object>Insert HTML or by putting the form in an iframe and copying and pasting the iframe code into InDesign CS6. Like my example in the previous section, include a few text fields for To: and From:, and perhaps even a menu to choose which file to attach. You can get fancy and have check boxes or menus that attach multiple files to the email, too. Then, in your emailer server-side application, compose and send an email using the information in the form. I have done this with PHP and MySQL hundreds of times over the years, and it is a rock solid method for sending email attachments. Of course, you should obfuscate that URL or put it behind some kind of login, ideally attached to your company’s LDAP or Active Directory, if you need security.

While I usually turn to PHP and MySQL, there are myriad ways to implement this on your server. Check to see what server-side capabilities are available to you and give it a whirl.

Thinking outside the (Mail)box…

So, what happens if you are offline? The online form won’t work, and you’ll need a different solution. On iOS, you can write a custom app with XCode that can leverage Custom URL schemes to transmit information between apps. The mailto: tag above is an example of one that’s built into iOS. Also included are sms:, tel:, and http:. You can build an app that can respond to a custom URL scheme and deploy that app to all of the users who need to send emails. Here’s an example of XCode projects that, when built, communicate with each other.

Let’s say the app named Enterprise Email that has an ID of com.adobe.jameslockman.emailsenderapp has the registered the custom URL scheme sendemail: in its plist. I can then construct a URL using either of my methods shown above in DPS that will tell iOS to communicate with Enterprise Email using URL encoding, such as: sendemail:// This URL is easy to populate as the result of a form with or without javascript in a web content overlay.

It’s up to you to determine how to parse the incoming string in your custom app. In addition, you should probably have the app check in to a central file repository from time to time and pick up the list of available files and store them internally. The app should also have the ability to cache email sending requests so that it can wait until it gets a network connection to send its emails. This method completely bypasses Mail and will require the app to enable its own email sending methods. I do not have an example of this in action, but I’m considering building out a simple XCode example. If I do, I’ll post it as another entry and link to it here.

This method will only be applicable to an Enterprise who can manage deployment of apps to its installed base of devices through a Mobile Device Management (MDM) solution or other deployment method such as manual sideloading.

It’s in the mailbag

Remember that your ability to actually send email is dependent on your reader actually completing the email task in Mail. Also, the email will always be sent from their default account. They can always choose not to send the message, but in a sales situation, the sales rep will definitely want to send the message. Also, this provides an offline protection, since Mail lets you cache emails until there is an active network connection. If you need to send attachments, then you will need to look at an always online solution or the helper app solution. Your use case will dictate how far you need to go down the development road, but start simple with a URL or an embedded form. It just might be the all you need.

Share on Facebook