diff options
Diffstat (limited to 'core/src/fpdfapi/fpdf_parser/fpdf_parser_fdf.cpp')
-rw-r--r-- | core/src/fpdfapi/fpdf_parser/fpdf_parser_fdf.cpp | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/core/src/fpdfapi/fpdf_parser/fpdf_parser_fdf.cpp b/core/src/fpdfapi/fpdf_parser/fpdf_parser_fdf.cpp index f5701fefff..b80568b63c 100644 --- a/core/src/fpdfapi/fpdf_parser/fpdf_parser_fdf.cpp +++ b/core/src/fpdfapi/fpdf_parser/fpdf_parser_fdf.cpp @@ -94,84 +94,3 @@ FX_BOOL CFDF_Document::WriteBuf(CFX_ByteTextBuf& buf) const { << " 0 R>>\r\n%%EOF\r\n"; return TRUE; } -CFX_WideString CFDF_Document::GetWin32Path() const { - CPDF_Dictionary* pDict = m_pRootDict ? m_pRootDict->GetDictBy("FDF") : NULL; - CPDF_Object* pFileSpec = pDict ? pDict->GetElementValue("F") : NULL; - if (!pFileSpec) - return CFX_WideString(); - if (pFileSpec->IsString()) - return FPDF_FileSpec_GetWin32Path(m_pRootDict->GetDictBy("FDF")); - return FPDF_FileSpec_GetWin32Path(pFileSpec); -} -static CFX_WideString ChangeSlash(const FX_WCHAR* str) { - CFX_WideString result; - while (*str) { - if (*str == '\\') { - result += '/'; - } else if (*str == '/') { - result += '\\'; - } else { - result += *str; - } - str++; - } - return result; -} -void FPDF_FileSpec_SetWin32Path(CPDF_Object* pFileSpec, - const CFX_WideString& filepath) { - CFX_WideString result; - if (filepath.GetLength() > 1 && filepath[1] == ':') { - result = L"/"; - result += filepath[0]; - if (filepath[2] != '\\') { - result += '/'; - } - result += ChangeSlash(filepath.c_str() + 2); - } else if (filepath.GetLength() > 1 && filepath[0] == '\\' && - filepath[1] == '\\') { - result = ChangeSlash(filepath.c_str() + 1); - } else { - result = ChangeSlash(filepath.c_str()); - } - - if (pFileSpec->IsString()) { - pFileSpec->SetString(CFX_ByteString::FromUnicode(result)); - } else if (CPDF_Dictionary* pFileDict = pFileSpec->AsDictionary()) { - pFileDict->SetAtString("F", CFX_ByteString::FromUnicode(result)); - pFileDict->SetAtString("UF", PDF_EncodeText(result)); - pFileDict->RemoveAt("FS"); - } -} -CFX_WideString FPDF_FileSpec_GetWin32Path(const CPDF_Object* pFileSpec) { - CFX_WideString wsFileName; - if (!pFileSpec) { - wsFileName = CFX_WideString(); - } else if (const CPDF_Dictionary* pDict = pFileSpec->AsDictionary()) { - wsFileName = pDict->GetUnicodeTextBy("UF"); - if (wsFileName.IsEmpty()) { - wsFileName = CFX_WideString::FromLocal(pDict->GetStringBy("F")); - } - if (pDict->GetStringBy("FS") == "URL") { - return wsFileName; - } - if (wsFileName.IsEmpty() && pDict->KeyExist("DOS")) { - wsFileName = CFX_WideString::FromLocal(pDict->GetStringBy("DOS")); - } - } else { - wsFileName = CFX_WideString::FromLocal(pFileSpec->GetString()); - } - if (wsFileName[0] != '/') { - return ChangeSlash(wsFileName.c_str()); - } - if (wsFileName[2] == '/') { - CFX_WideString result; - result += wsFileName[1]; - result += ':'; - result += ChangeSlash(wsFileName.c_str() + 2); - return result; - } - CFX_WideString result; - result += '\\'; - result += ChangeSlash(wsFileName.c_str()); - return result; -} |