예제 #1
0
void CPDF_StreamContentParser::EndString()
{
    CPDF_String *pObj = FX_NEW CPDF_String(m_StringBuf.GetByteString());
    if (!SetToCurObj(pObj)) {
        pObj->Release();
    }
}
예제 #2
0
void CPDF_StreamContentParser::EndHexString()
{
    CPDF_String *pObj = FX_NEW CPDF_String(_FPDF_ByteStringFromHex(m_StringBuf), TRUE);
    if (!SetToCurObj(pObj)) {
        pObj->Release();
    }
}
예제 #3
0
CFX_WideString CPDF_FormField::GetOptionText(int index, int sub_index) const {
  CPDF_Array* pArray = ToArray(FPDF_GetFieldAttr(m_pDict, "Opt"));
  if (!pArray)
    return CFX_WideString();

  CPDF_Object* pOption = pArray->GetDirectObjectAt(index);
  if (!pOption)
    return CFX_WideString();
  if (CPDF_Array* pOptionArray = pOption->AsArray())
    pOption = pOptionArray->GetDirectObjectAt(sub_index);

  CPDF_String* pString = ToString(pOption);
  return pString ? pString->GetUnicodeText() : CFX_WideString();
}
CFX_WideString CPDF_Bookmark::GetTitle()
{
    if (!m_pDict) {
        return CFX_WideString();
    }
    CPDF_String* pString = (CPDF_String*)m_pDict->GetElementValue("Title");
    if (pString == NULL || pString->GetType() != PDFOBJ_STRING) {
        return CFX_WideString();
    }
    CFX_WideString title = pString->GetUnicodeText();
    FX_LPWSTR buf = title.LockBuffer();
    int len = title.GetLength(), i;
    for (i = 0; i < len; i ++)
        if (buf[i] < 0x20) {
            buf[i] = 0x20;
        }
    title.ReleaseBuffer(len);
    return title;
}
예제 #5
0
CFX_WideString CPDF_Bookmark::GetTitle() const {
  if (!m_pDict) {
    return CFX_WideString();
  }
  CPDF_String* pString = ToString(m_pDict->GetElementValue("Title"));
  if (!pString)
    return CFX_WideString();

  CFX_WideString title = pString->GetUnicodeText();
  int len = title.GetLength();
  if (!len) {
    return CFX_WideString();
  }
  nonstd::unique_ptr<FX_WCHAR[]> buf(new FX_WCHAR[len]);
  for (int i = 0; i < len; i++) {
    FX_WCHAR w = title[i];
    buf[i] = w > 0x20 ? w : 0x20;
  }
  return CFX_WideString(buf.get(), len);
}