OpenOffice.org/DOCX/FB2 Viewer
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
Выкачал новую версию.
1) Из-за реорганизации временных папок вот какая проблема:
файлы fb2 в кодировке windows-1251 с русскими буквами в названии не открываются.
Потому что когда создается временный xml-файл и в него записывается путь, то всегда используется функция UTF8Encode,
что естественно для русских букв с кодировкой windows-1251 выдает абракадабру.
2) Если нужна помощь в освоении IDocHostUIHandler-интерфейса, то могу попытаться помочь.
1) Из-за реорганизации временных папок вот какая проблема:
файлы fb2 в кодировке windows-1251 с русскими буквами в названии не открываются.
Потому что когда создается временный xml-файл и в него записывается путь, то всегда используется функция UTF8Encode,
что естественно для русских букв с кодировкой windows-1251 выдает абракадабру.
2) Если нужна помощь в освоении IDocHostUIHandler-интерфейса, то могу попытаться помочь.
FB2 - это стандарт, там всё прописано на сайте:
http://www.fictionbook.org/index.php/%D ... 1%82_Sclex
http://www.fictionbook.org/index.php/%D ... 1%82_Sclex
Общая структура документа. Кодировки
FB2-документ состоит из объявления XML и корневого элемента <FictionBook>. То есть выглядит это так:
<?xml version="1.0" encoding="windows-1251"?>
<FictionBook xmlns="http://www.gribuser.ru/xml/fictionbook/2.0"
xmlns:l="http://www.w3.org/1999/xlink">
...
</FictionBook>
Как видно, в первой строке в значении атрибута encoding надо правильно указать кодировку документа. В приведенном примере это windows-1251, а в другом случае могла бы быть и utf-8. utf-8 также является кодировкой по умолчанию, использующейся в случае отсутствия атрибута encoding или всего XML-объявления.
Ниже указано, какая кодировка каким языкам соответствует:
windows-1251 - английский и кириллица (русский, болгарский и т.д.)
windows-1252 - западно-европейские языки (английский, французский, испанский и т.д.)
windows-1250 - английский и восточно-европейские (польский, чешский и т.д.)
Xubuntu
1) может придумать другое построение временных папок?
2) Английская статья с небольшим примером:
http://www.delphidabbler.com/articles?article=18
Также нашел компонент, которых этот интерфейс реализует EmbeddedWB:
http://www.bsalsa.com/
И вот как можно использовать метод:
Пока все, что смог.
2) Английская статья с небольшим примером:
http://www.delphidabbler.com/articles?article=18
Также нашел компонент, которых этот интерфейс реализует EmbeddedWB:
http://www.bsalsa.com/
И вот как можно использовать метод:
Код: Выделить всё
type
TCustomizedWebBrowser = class(TWebBrowser, IDocHostUIHandler)
...
function TCustomizedWebBrowser.TranslateAccelerator(const lpMsg: PMSG;
const pguidCmdGroup: PGUID; const nCmdID: DWORD): HRESULT;
begin
Result := S_FALSE;
with lpMsg^ do
if (message = WM_KEYDOWN) and (GetKeyState(VK_CONTROL) >= 0) then
begin
MessageDlg(Char(wParam), mtWarning, [mbOK], 0);
Result := S_OK;
end
end;