A possible solution to process MS Word password protected/encrypted documents with SDL Studio, and a request to SDL Studio developers/programmers

Dear all, and SDL developers/programmers,

I appreciate that this is not a so common condition, but I just want to report it.

Sometimes, and due to most different reasons, we receive password protected/encrypted MS Word documents and (in general with a separate E-mail) the pertinent password to open, translate and edit them:

Password prompt for opening a password-protected MS Word document with the filename 'Thank you email from CCO - CMA.docx'.

And this is not a real problem when we want to process them using SDL Studio.

It’s enough to open the file in MS Word using the provided password, and to remove the password/encryption protection using the MS Word command File > Information > Protect Document > Password encryption, deleting the original password leaving the pertinent field blank and, finally, saving again the document (say [FileName]_NO-PW.docx) to obtain a not-encrypted document.

MS Word's 'Protect Document' pane showing the option to remove password encryption with a highlighted arrow pointing to the password field.

Obviously, when you try to open an encrypted MS Word document in SDL Studio, you will get an error message telling you that it was not possible to open the document,

Error message in SDL Trados Studio stating 'Cannot find central directory' with a 'Show details' button and a red error icon.

with the following sdlerror…xml details file:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<SDLErrorDetails time="28/11/2018 11.12.58">
<ErrorMessage>Cannot find central directory</ErrorMessage>
<Exception>
<Type>ICSharpCode.SharpZipLib.Zip.ZipException, ICSharpCode.SharpZipLib, Version=1.0.6052.28191, Culture=neutral, PublicKeyToken=1b03e6acf1164f73</Type>
<HelpLink />
<Source>ICSharpCode.SharpZipLib</Source>
<HResult>-2146233088</HResult>
<StackTrace><![CDATA[ at ICSharpCode.SharpZipLib.Zip.ZipFile.ReadEntries()
at ICSharpCode.SharpZipLib.Zip.ZipFile..ctor(Stream stream)
at ICSharpCode.SharpZipLib.Zip.FastZip.ExtractZip(Stream inputStream, String targetDirectory, Overwrite overwrite, ConfirmOverwriteDelegate confirmDelegate, String fileFilter, String directoryFilter, Boolean restoreDateTime, Boolean isStreamOwner)
at ICSharpCode.SharpZipLib.Zip.FastZip.ExtractZip(String zipFileName, String targetDirectory, Overwrite overwrite, ConfirmOverwriteDelegate confirmDelegate, String fileFilter, String directoryFilter, Boolean restoreDateTime)
at ICSharpCode.SharpZipLib.Zip.FastZip.ExtractZip(String zipFileName, String targetDirectory, String fileFilter)
at Sdl.FileTypeSupport.Filters.MicrosoftOffice.Core.Infrastructure.Zip.Extract(String filePath)
at Sdl.FileTypeSupport.Filters.MicrosoftOffice.Core.Services.FileService.ExtractArchive(String archivePath)
at Sdl.FileTypeSupport.Filters.MicrosoftOffice.Word.Parser.DocxParser.SetFileProperties(IFileProperties properties)
at Sdl.FileTypeSupport.Framework.Integration.FileExtractor.CallSetNativeFileProperties(INativeContentCycleAware aware)
at Sdl.FileTypeSupport.Framework.Integration.FileExtractor.CallSetNativeFileProperties()
at Sdl.FileTypeSupport.Framework.Integration.FileExtractor.ParseNext()
at Sdl.FileTypeSupport.Framework.Integration.MultiFileConverter.ParseNext()
at Sdl.FileTypeSupport.Framework.Integration.MultiFileConverter.Parse()
at Sdl.TranslationStudio.Editor.TranslationEditor.TranslatableDocument.Load(IJobExecutionContext context)
at Sdl.Desktop.Platform.Services.JobRequest.Execute(IJobExecutionContext context)
at Sdl.Desktop.Platform.Implementation.Services.Job.<_worker_DoWork>b__47_0()
at Sdl.Desktop.Logger.Log.Resources(Object message, Action action)
at Sdl.Desktop.Platform.Implementation.Services.Job._worker_DoWork(Object sender, DoWorkEventArgs e)
at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)]]></StackTrace>
</Exception>
<Environment>
<ProductName>SDL Trados Studio</ProductName>
<ProductVersion>15.0.0.0</ProductVersion>
<EntryAssemblyFileVersion>15.1.0.42476</EntryAssemblyFileVersion>
<OperatingSystem>Microsoft Windows 10 Pro</OperatingSystem>
<ServicePack>NULL</ServicePack>
<OperatingSystemLanguage>1033</OperatingSystemLanguage>
<CodePage>1252</CodePage>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

But you won’t have any problem opening the not-encrypted saved copy after having disabled password/encryption.

The only final task, when completed and exported the translated file in its original format, will be to remember to reapply the password/encryption to the target document using the same command run to unprotect the document and inserting in the empty field the original password (two stages procedure) in order to respect the confidential request coming from the client.

And now a simple question to the SDL Studio developers/programmers.

Said that this is not a so common condition, is it possible to foresee a procedure to open and process a password protected/encrypted MS Word documents and to save back the translated version preserving the original format and password protection directly from SDL Studio?

I mean, a procedure similar to that of MS Office to open, to edit, and to save back a password protected/encrypted document.

Any other possible solution is welcome!

Thank you for your attention.

Regards,

Claudio



Generated Image Alt-Text
[edited by: Trados AI at 7:38 AM (GMT 0) on 29 Feb 2024]
emoji