Из документации от React :
setState()
не сразу мутируетthis.state
, а создает ожидающий переход состояния. Доступ кthis.state
после вызова этого метода может потенциально вернуть существующее значение.blockquote>
. Если вы хотите, чтобы функция выполнялась после изменения состояния, передайте ее в поле
setState
, и вызовы могут быть собраны для повышения производительности. как обратный вызов.this.setState({value: event.target.value}, function () { console.log(this.state.value); });
Существует несколько других вариантов в случае, если Adobe ActiveX не то, что Вы ищете (так как Acrobat должен присутствовать на пользовательской машине, и Вы не можете поставить его сами).
Для создания предварительного просмотра PDF, сначала взгляните на некоторые другие обсуждения предмета на StackOverflow:
В последних двух, я говорю о нескольких вещах, которые можно попробовать:
можно получить коммерческий рендерер ( PDFViewForNet, PDFRasterizer.NET , ABCPDF, ActivePDF, XpdfRasterizer и другие в других ответах...).
Большинство довольно дорого, хотя, особенно если все Вы заботитесь о, делает простой предварительный просмотр/миниатюры.
В дополнение к фрагменту кода Omar Shahine, существует статья CodeProject, которая показывает, как использовать Adobe ActiveX, но это может устареть, легко поврежденное новыми выпусками, и его законность темна (в основном, это хорошо для внутреннего пользования, но Вы не можете поставить его, и Вы не можете использовать его на сервере для создания изображений PDF).
Вы могли взглянуть на исходный код для [1 110] SumatraPDF, средство просмотра OpenSource PDF для окон.
существует также Poppler, механизм визуализации, который использует Xpdf в качестве механизма визуализации. Все они являются большими, но они потребуют, чтобы изрядное количество обязательства сделать заставило их работать и взаимодействовать через интерфейс с .NET, и они имеют тенденцию быть быть распределенными под GPL.
можно хотеть рассмотреть использование GhostScript как интерпретатор, потому что рендеринг страниц является довольно простым процессом.
недостаток состоит в том, что Вы должны будете или повторно упаковать его для установки его с приложением или сделаете его предпосылкой (или по крайней мере часть процесса установки).
Это не сложная задача, и это, конечно, легче, чем необходимость массажировать другие механизмы визуализации в сотрудничество с .NET.
я сделал маленький проект, который Вы найдете на форумы Developer Express как вложение.
остерегаться лицензионных требований для GhostScript через.
, Если Вы не можете уехать с тем затем коммерческим программным обеспечением, вероятно, Ваш единственный выбор.
Вот мой ответ от другого вопроса.
Первый необходимо сослаться на Adobe Reader ActiveX Control
Библиотека типов Управления Браузером Adobe Acrobat 1.0
%programfiles& \Common Files\Adobe\Acrobat\ActiveX\AcroPDF.dll
Затем Вы просто перетаскиваете его в свой Windows Form от Панели инструментов.
И используют некоторый код как это для инициализации элемента управления ActiveX.
private void InitializeAdobe(string filePath)
{
try
{
this.axAcroPDF1.LoadFile(filePath);
this.axAcroPDF1.src = filePath;
this.axAcroPDF1.setShowToolbar(false);
this.axAcroPDF1.setView("FitH");
this.axAcroPDF1.setLayoutMode("SinglePage");
this.axAcroPDF1.Show();
}
catch (Exception ex)
{
throw;
}
}
Удостоверяются, когда Ваши завершения Формы, что Вы избавляетесь от элемента управления ActiveX
this.axAcroPDF1.Dispose();
this.axAcroPDF1 = null;
иначе Acrobat, могли бы быть разбросаны, лежа.
Используйте управление веб-браузером. Это требует, чтобы читатель Adobe был установлен, но скорее всего у Вас есть он так или иначе. Установите UrL управления к расположению файла.
Динамическое Средство просмотра PDF из программного обеспечения кита могло бы сделать то, что Вы ищете. Я использовал их программное обеспечение генератора, и было довольно довольно им.
Самый легкий lib, который я использовал, Paolo Gios библиотека. Это в основном
Create GiosPDFDocument object
Create TextArea object
Add text, images, etc to TextArea object
Add TextArea object to PDFDocument object
Write to stream
, Это является большим учебным руководством для запущения Вас.
Вы могли погуглить для компонент средства просмотра PDF и придумать больше, чем несколько хитов.
, Если Вы не должны действительно встраивать их в свое приложение, хотя - можно просто потребовать Acrobat Reader или FoxIt (или связать его, если оно выполняет их соответствующие условия лицензирования) и выходят из оболочки к нему. Это не столь прохладно, но это сделало задание бесплатно.
ABCpdf сделает это и много других вещей для Вас.
Не ony будет он представлять Ваш PDF ко множеству форматов (например, JPEG, GIF, PNG, TIFF, JPEG 2000; векторный EPS, SVG, Flash и PostScript), но это может также сделать так во множестве цветовых пространств (например, Серый, RGB, CMYK) и битовые глубины (например, 1, 8, 16 битов за компонент).
И это - просто часть из того, что это сделает!
Для получения дополнительной информации см.:
http://www.websupergoo.com/abcpdf-8.htm
О, и можно получить бесплатные лицензии по бесплатной схеме лицензии.
Существуют проблемы EULA с использованием Acrobat, чтобы сделать рендеринг PDF. Если Вы хотите спуститься, этот маршрут проверяют законность очень тщательно сначала.