рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ, рдЖрдк рдХреНрдпрд╛ рдирд╣реАрдВ рдорд┐рд▓реЗрдВрдЧреЗред рдпрд╛ рд▓рд┐рдЦреЛред рдпрд╣рд╛рдБ, рджреВрд╕рд░реЗ рджрд┐рди, рдЙрдиреНрд╣реЛрдВрдиреЗ
рдПрдХ рдФрд░ рд╣реЗрдЬрд╣реЛрдЧ рдХреЗ рдмрд╛рд▓реЛрдВ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЬрдиреНрдо рджрд┐рдпрд╛ рдФрд░ рд╕рд╛рд╡рдзрд╛рдиреА рд╕реЗ рд░рдЦреА рд░реЗрдХ рдкрд░ рдХрджрдо рд░рдЦрд╛, рдЗрд╕ рдмрд╛рд░ рдПрдХ рдЦрд╕рдЦрд╕ тАЛтАЛрдХреЗ рдиреАрдЪреЗред
рдореБрдЭреЗ рдЖрдкрдХреЛ рдЧрд╛рдерд╛ рдХреА рдкрд┐рдЫрд▓реА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреА рдпрд╛рдж рджрд┐рд▓рд╛рдПрдВ:
рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рддрд╣рдд рд░реЗрдХ ред
рдпрд╣реА рд╣реИ, рд╣рдо рдЕрднреА рднреА рдПрдХ рд╣реА рд╡рд┐рджреЗрд╢реА рд╣рд╛рдереА + рдЕрдЬрдЧрд░ = рдХрд╛рдВрдЯреЗрджрд╛рд░ рддрд╛рд░ рд╣реИред рдЗрд╕ рдмрд╛рд░,
рдЦреБрд╢реА рд▓реБрдврд╝рдХ рдЧрдИред рд╣рдореЗрдВ рдПрдХ рдЦрд╕рдЦрд╕ тАЛтАЛрдкрд░ рдЖрд╢реНрдЪрд░реНрдп рд╣реБрдЖред рдЬрд╛рд╡рд╛ рдЗрдирдбрд┐рдЬрд╛рдЗрди рдПрдХреАрдХреГрдд, рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЕрдм рд╣рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреЛ рд╣рдорд╛рд░реЗ рдЬрд╛рд╡рд╛ рдХреЛрдб рдореЗрдВ рд▓рд┐рдЦрд╛ рд╣реБрдЖ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдж рдбрд╛рд░реНрдХ рдирд╛рдЗрдЯ: рдж рдмрд┐рдЧрд┐рдирд┐рдВрдЧ
рдпрд╣ рд╕рдм рд╢реБрд░реВ рд╣реБрдЖ рд╕рд╛рдВрд╕рд╛рд░рд┐рдХ:
void FooExpFilter::ExportToStream( IPMStream* stream, IDocument* doc, IPMUnknown* targetboss, const PMString& formatName, UIFlags uiFlags) { IDFile outputFile; InterfacePtr<IFileStreamData> fileData(stream, IID_IFILESTREAMDATA); outputFile = fileData->GetSysFile(); SDKFileHelper fh(outputFile); PMString pathID = fh.GetPath(); WideString pathWID(pathID); std::string xID; StringUtils::ConvertWideStringToUTF8 (pathWID, xID);
рдФрд░ рдореИрдХ рдФрд░ рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ред рдЕрдм рддрдХ, InDesign CS5.5 рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред рдФрд░ рдлрд┐рд░
рдЦреБрд╢реА рд╣рдорд╛рд░реЗ рдкрд╕рдВрджреАрджрд╛ рдФрд░ рдорд╣рд╛рдХрд╛рд╡реНрдп
java.io.FileNotFoundException рд▓реЙрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдЖрдпрд╛ рдерд╛ред
рд╕реНрдЯрд╛рд░ рд╡рд╛рд░реНрд╕: рдПрдореНрдкрд╛рдпрд░ рд╕реНрдЯреНрд░рд╛рдЗрдХреНрд╕ рдмреИрдХ
рдПрдХ рддрд░рдл : рдпреЗ рдкреНрд░рд╡реЗрд╢ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ "рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛" рдмрд╣реБрдд рдорджрдж рдХрд░рддрд╛ рд╣реИ, рдореИрдВ рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред рдЬрдм рддрдХ рдореИрдВ рдмреБрджреНрдзрд┐рдорд╛рдиреА рд╕реЗ рд▓реЙрдЧ рдирд╣реАрдВ рд▓рд┐рдЦрддрд╛, рд▓реЗрдХрд┐рди (рдореИрдВрдиреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЗрд╕реЗ рджреЗрдЦрд╛ рдерд╛!) тАЛтАЛрдПрдХ рдмрд╛рд░ рд▓реЙрдЧреНрд╕ рдХреА рдкреНрд░рдЪреБрд░рддрд╛ рд╕реЗ рдореБрдЭреЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдЧрд┐рд░рд╛рд╡рдЯ рдЖрдИ рдФрд░ "рдХреЛрдбреЗрдХ" (рд╕реА) рдиреЗ 40 рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рдПрдХ рд▓реЙрдЧ рд▓рд┐рдЦрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрдзреЗ рд╕реЗ рдПрдХ рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рд▓реЙрдЧ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╣рд┐рдВрджреБрдУрдВ рдиреЗ рдЕрдкрдирд╛ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ - рдЙрдиреНрд╣реЛрдВрдиреЗ рдЕрдкрдирд╛ рд▓реЙрдЧ 4j рд▓рд╛рдареА рдХреЗ рд╕рд╛рде рд▓рд┐рдЦрд╛ рд▓реЗрдХрд┐рди рдмрд┐рдирд╛ рдмрдлрд░рд┐рдВрдЧ рдХреЗред
рд╣рдореЗрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рд▓реЙрдЧ рдорд┐рд▓рддрд╛ рд╣реИ, рдФрд░ рд╡рд╣рд╛рдВ -
Macintosh HD :: рдлреВ :: рдмрд╛рд░ !
рдкреНрд░реЛрд╕реНрдЯреЛрдХрд╡рд╛рд╢рд┐рдиреЛ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЖрдУ - рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдмреЙрд▓ рдЧрд╛рдЙрди рдирд╣реАрдВ рд╣реИ
рддреНрд╡рд░рд┐рдд googling (рдпреВрдирд┐рдХреНрд╕ рдкрд░ рдХрд╛рд░реНрдмрди-рдкреЛрд╕реНрддрд╛ рдкрде рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХреИрд╕реЗ рдХрд░реЗрдВ) рдорд╛рдЙрдВрдЯ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╣рд╛рдереЛрдВ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХреИрд╕реЗ рдХрд░реЗрдВ, рдЗрд╕ рдкрд░ рд╡рд┐рд╕реНрддреГрдд рдирд┐рд░реНрджреЗрд╢ рджреЗрддрд╛ рд╣реИред рдФрд░ рдЦреЛрдЬрдХ рдХреЛ рдкреВрдЫрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдФрд░ рдХрд┐рд╕ рдХреНрд░рдо рдореЗрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдРрдкреНрдкрд▓рд╕реНрдХреНрд░рд┐рдкреНрдЯред рд╣рд╛рдБ, рд╣рд╛рдБ - рдХреЗрд╡рд▓ ObjectiveC рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЦреБрд╢ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рдерд╛ред
рдХреЙрдлреА рдХреА рдЖрдзреА рдмрд╛рд▓реНрдЯреА рдкреА рд▓реА, рдФрд░ рдПрдбреЛрдм рдПрд╕рдбреАрдХреЗ рдХрд╛ рд╕реЗрд╡рди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЗрдердкреЗрдиреНрд╕ рдХреЗ рдпреЛрдЧреНрдп рд╕рдорд╛рдзрд╛рди рдвреВрдВрдврддреЗ рд╣реИрдВред рдпрд╣рд╛рдБ рдпрд╣ рд╣реИред
IDFile outputFile; InterfacePtr<IFileStreamData> fileData(stream, IID_IFILESTREAMDATA); outputFile = fileData->GetSysFile();
рдФрд░ рдЬрд╛рд╡рд╛ рдореЗрдВ 3 рдФрд░ рд▓рд╛рдЗрдиреЗрдВ рд╣реИрдВ:
if(externFile.startsWith("file://")) { File externFd = new File(new java.net.URI(externFile)); externFile = externFd.getAbsolutePath(); }
рдпрд╣реА рд╣реИ, рдпрд╣ рдирд╣реАрдВ рдкрд╛ рд░рд╣рд╛ рд╣реИ рдХрд┐ рд░рд╛рд╕реНрддрд╛ рдХреИрд╕реЗ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рд╣рдордиреЗ рдкрд╛рд╕ рдХрд┐рдпрд╛ ... URL
рдФрд░ рдпрд╣ рдХрд╛рдо рднреА рдХрд░рддрд╛ рд╣реИред
рдЕрд╕реНрд╡реАрдХрд░рдг : рдореИрдВрдиреЗ рд╕рд╣реА рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рджрд┐рдпрд╛ - рдмрд┐рдирд╛ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рдпреВрдирд┐рдХреНрд╕ рдХреЗ рдХрд╛рд░реНрдмрди рдкрдереЛрдВ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХреИрд╕реЗ рдХрд░реЗрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ, рд▓реЗрдХрд┐рди рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред рдпрджрд┐ рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдореМрдЬреВрдж рд╣реИ, рдФрд░ "рдЕрдкрдирд╛ рд╕рд┐рд░ рдХрд╛рдЯрдХрд░ рдирд╣реАрдВ рдмрджрд▓ рд░рд╣рд╛ рд╣реИ :: рддреЛ / рддреЛ", рдореИрдВ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдЧрд▓рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред
рдорд╛рдЗрдВрдб рдЧреЗрдореНрд╕: рдЖрдк рдмреЗрд╣рддрд░ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдЕрджреНрдпрддрди 1 :
рдиреЛрдЯрд░реА рдиреЗ рдЦрд╕рдЦрд╕
CFURLCopyFileSystemPath рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛:
void FooExpFilter::ExportToStream( IPMStream* stream, IDocument* doc, IPMUnknown* targetboss, const PMString& formatName, UIFlags uiFlags) { IDFile outputFile; InterfacePtr<IFileStreamData> fileData(stream, IID_IFILESTREAMDATA); outputFile = fileData->GetSysFile(); #ifdef WINDOWS SDKFileHelper fh(outputFile); PMString pathID = fh.GetPath(); #endif #ifdef MACINTOSH FSSpec fsSpec; PMString pathID; OSErr err = FileUtils::IDFileToFSSpec(outputFile, fsSpec); if (err == noErr) { FSRef fsRef; err = MacFileUtils::FSSpecToFSRef(fsSpec, fsRef); if (err == noErr) { CFURLRef appURL = ::CFURLCreateFromFSRef(NULL, &fsRef); CFStringRef app_str = ::CFURLCopyFileSystemPath(appURL, kCFURLPOSIXPathStyle); if (app_str) { pathID.SetCFString(app_str); ::CFRelease(app_str); } if (appURL) ::CFRelease(appURL); } } #endif WideString pathWID(pathID); std::string xID; StringUtils::ConvertWideStringToUTF8 (pathWID, xID);
рдЕрдкрдбреЗрдЯ 2 : рдФрд░
рд╕реНрдЯреНрд░реЗрдЬрд╝ рдиреЗ рдПрдХ рдФрд░ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ - рдЖрдк
рдлрд╛рдЗрд▓ рдпреВрдЯрд┐рд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
:: FileURLToPosixPath , рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреЛрдб рдЗрд╕ рддрд░рд╣ рдмрдирддрд╛ рд╣реИ:
IDFile outputFile; InterfacePtr<IFileStreamData> fileData(stream, IID_IFILESTREAMDATA); outputFile = fileData->GetSysFile(); #ifdef WINDOWS SDKFileHelper fh(outputFile); PMString pathID = fh.GetPath(); WideString pathWID(pathID); std::string xfinal; StringUtils::ConvertWideStringToUTF8 (pathWID, xfinal); #endif #ifdef MACINTOSH PMString pathJ = FileUtils::SysFileToFileURL(outputFile); WideString pathWJ(pathJ); std::string xj; StringUtils::ConvertWideStringToUTF8 (pathWJ, xj); std::string xfinal = FileUtils::FileURLToPosixPath(xj); #endif
рдЗрд╕рд▓рд┐рдП рдпрджрд┐ URL рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ - рддреЛ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред рдкрде рдХреЗ рдмрд┐рдирд╛ -> URL -> рдкреЙрдЬрд╝рд┐рдХреНрд╕ рдкрде рд╕рдВрдХреНрд░рдордг, рдЕрдм рддрдХ рдХреЛрдИ рд╕рдВрдХреЗрдд рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ (рдирд╣реАрдВ, рдореИрдВ рдЕрднреА рднреА рдореЗрд░реЗ рд╕рд╛рде ObjectiveC рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреБрдХрдбрд╝рд╛ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣рдордд рдирд╣реАрдВ рд╣реВрдВ)ред