3

I've started to use Smart Objects because you only have to edit them once to modify all instances of the object. I have run into a problem though. I want to add replaceable text to a Smart Object so that individual instances of this object can set their own text. It reminds me of how PowerPoint's slide masters work: the general layout is set globally, but the content can be modified on the slide itself.

Is this possible using Smart Objects? If not, is there a better way to do it? Here's a screenshot that illustrates my current situation.

My current situation

I want to be able to edit certain parts of these objects so that I can make something like this with one Smart Object:

What I'd like to do

  • Is there any chance that you'd be able or willing to do this in illustrator? – Joonas Jun 30 '14 at 9:13
  • I don't have Illustrator and it's too expensive for what I'd use it for (i.e. small hobby projects), sorry. – Pieter Jun 30 '14 at 9:43
  • InDesign, then, by any chance? – Vincent Jul 1 '14 at 12:44
  • Is there a free or cheap alternative to InDesign that can solve my issue? I'm just experimenting in my free time, so I can't really justify investing in expensive Adobe products. – Pieter Jul 1 '14 at 16:13
  • Well, it is possible to make a script that keeps layers inside a set, in sync but allow the set to be offset and text to be different. Would something like that suffice? Or you could use inkscape. Personally, if i must save money over work, id just open a text editor and write a PS or a website file to do your design is a 10-5 minute job in this case but not for everyone. You could also use something like apache fop. – joojaa Jul 1 '14 at 17:05
2

Photoshop does have Data sets. They can do something like what you want, but it has always been a bit weird in the sense that you can only export files .psd. You can of course convert them to other formats, but it's still odd that you can't export to other format straight away.

You can do this following without an external file, but I'm going to explain the external file method, as it is a bit better.

So here's how:

I'm going to assume this is a business card...

You can make a text file with values separated by commas or tabs, but I prefer to use both.

For example I would make BusinessCard_dataset.txt that looks like this:

The first row contains variable names. All the following rows are data sets.

So essentially I have 3 different text frames/layers that will all get 2 different text content.

Name,       Number,         Email

He-Man,     000 0000001,    He-Man@example.com
Skeletor,   000 0000002,    sexy.skeletor@example.com
  1. To begin importing this in, you need to have layers in the document, otherwise the menu item will be greyed out.
  2. From the top menu: Image > Variables > Define...
  3. In the Variables window, you first map layers to variables.
    • Select appropriate layer
    • Check Text replacement
    • In the Name: text input, write variable name corresponding to the name in your text file's first line (Name, Number, Email).
    • Note that the variable names are case sensitive.
    • Repeat this to each layer that should have replacement text.
    • enter image description here
  4. Now from the dropdown list at the top left corner: Define, select Data sets.
  5. Click the Import... button and import in your text file.
  6. If you click on the Preview checkbox, you can click the arrows to preview each dataset to see if that they are correct.
    • enter image description here
  7. To export these, you can go fro the top menu: File > Export > Data sets as files.... This is pretty self-explanatory
  8. The next part depends on what format you want the files as, but as I would save them in pdf format, I would go to: File > Automate > PDF Presentation. It's pretty self-explanatory as well. Just select all exported dataset ps, select Save- s: Multi-page document and export them as a multi-page pdf with one business card on each page and different details on each one.
  • Interesting, I've never heard about that feature before. Great find! I still have to figure out if it fits my needs though. I was planning on using my template to make step-by-step instructions for something. Each card on the page should carry different text and the circle should contain a step number. The light blue placeholder will be replaced by an image that will be different for each step. The end result should be exported to PNG. I'll try it to see if it fits my workflow and get back to you. – Pieter Jun 30 '14 at 16:39
  • Variables seem geared towards helping people mass export PSD files with different text labels every time. But I'm not bulk exporting anything. I have one page that re-uses the same Smart Object so that the layout of these objects are updated if I decide to change the template. I also want to be able to edit the caption per object without having this change be reflected in all other objects. But since the caption is embedded in the Smart Object, it appears that I can only modify it globally. – Pieter Jun 30 '14 at 17:23
  • @Pieter I assumed too much. The only issue with this method is creating a grid of images from the psd files. It's more difficult than you'd think. I wouldn't necessarily discard this method immediately. I was thinking about Contact sheet script, but it's far from ideal cause you need to know the final document dimensions for it to create the kind of document you want. Another one I could think of was Tych panel, but it doesn't quite create columns in a way that would make sense for this. This would be so much easier to achieve in indesign. --- If this is for web, I would just code it. – Joonas Jun 30 '14 at 19:51
  • Yes a website might be a good idea – joojaa Jul 1 '14 at 17:08
0

I'd almost certainly use Joonas's approach for something like this, unless you have only a handful of cards. There is a different approach that you might find simpler, however: use the Smart Object only for your slide/card background and set the type on other layers.

In CS6, you don't have the option to link an external Smart Object to your file (which would be the simplest way to do this, based on what you're describing), but you can use Layer Comps within a single PSD.

Set up your Smart Object array and add the first set of text layers, then save that as a Layer Comp. Hide the text layer(s), do the next set and save that Layer Comp. (You'll have to update the comps as you go, because they'll show anxious yellow triangles when you add new layers that weren't in the comp.)

Once you have everything set, export the lot with File > Scripts > Layer Comps to Files..., in whatever format works best for you.

  • I can see how this method would be useful when I have to create multiple pages using the same layout, but that's not what I currently need. I want to achieve something like this with one Smart Object. – Pieter Jul 1 '14 at 12:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.