Как я отображаю офис и/или содержание PDF на форме окон?

В функции модели get_images вы получаете все записи из таблицы, поэтому отображаются несколько изображений.

В вашем сеансе user_id используется его для получения одной записи пользователя.

Контроллер

public function SingleUserImage(){
     $data['images'] = $this->images_model->get_images();
     return $this->load->view('filename', $data);  
}

Изменить запрос модели следующим образом

МОДЕЛЬ

function get_images(){ 
    return $this->db->get_where('images', ['user_id' => $this->session->userdata('user_id')])->row();
}

У вас есть один пользователь запись (только одна строка), поэтому нет необходимости использовать foreach цикл

Просмотр

Согласно предоставленным вами данным таблицы, полный путь к изображению сохраняется только для использования переменная в атрибуте src тега img

<img src="<?php echo $images->fileName;?>" alt="" class="img-thumbnail">

Обновление: -

В соответствии с вашими требованиями в цикле используйте это

[113 ]
5
задан Berkay Turancı 6 December 2012 в 16:04
поделиться

4 ответа

Возможно интересный также:

Сохраните документы к XPS с помощью Microsoft Office 2007 (или распечатайте их к принтеру XPS).

Можно отобразить документ XPS только для чтения или использование компонента средства просмотра XPS или представить постранично в PNG или изображении JPEG. Этот рендеринг может быть достигнут довольно легко с помощью.NET 3.5 / WPF.

XpsDocument xpsDoc = new XpsDocument(xpsFileName, System.IO.FileAccess.Read);

FixedDocumentSequence docSeq = xpsDoc.GetFixedDocumentSequence();
const double scaleFactor = 0.8;
for (int pageNum = 0; pageNum < docSeq.DocumentPaginator.PageCount; pageNum++)
{
    DocumentPage docPage = docSeq.DocumentPaginator.GetPage(pageNum);

    // FIX: calling GetPage without calling UpdateLayout causes a memory leak
    ((FixedPage)docPage.Visual).UpdateLayout();

    RenderTargetBitmap renderTarget = new RenderTargetBitmap((int)Math.Round(scaleFactor * docPage.Size.Width),
                (int)Math.Round(scaleFactor * docPage.Size.Height), (int)Math.Round(scaleFactor * 96), (int)Math.Round(scaleFactor * 96), PixelFormats.Default);
    renderTarget.Render(docPage.Visual);

    JpegBitmapEncoder encoder = new JpegBitmapEncoder();
    encoder.QualityLevel = 75;
    // Choose type here ie: JpegBitmapEncoder, etc
    //BitmapEncoder encoder = new PngBitmapEncoder();  // Choose type here ie: JpegBitmapEncoder, etc
    encoder.Frames.Add(BitmapFrame.Create(renderTarget));

    string pageImageFileName = string.Format("{0}-{1}.jpg", Path.Combine(Path.GetDirectoryName(xpsFileName), Path.GetFileNameWithoutExtension(xpsFileName)), pageNum);
            using (FileStream pageOutStream = new FileStream(pageImageFileName, FileMode.Create, FileAccess.Write))
    {
        encoder.Save(pageOutStream);
    }
}

Для этого кода нужны ссылки на PresentationCore, PresentationFramework и блоки ReachFramework.

Править: Код выше содержал утечку памяти (см., что Открытие документ XPS в .NET вызывает утечку памяти). Обходное решение было вставлено в пример.

3
ответ дан 15 December 2019 в 01:12
поделиться

SpreadsheetGear для.NET имеет элемент управления Windows Forms Excel Compatible, который отобразит Ваши рабочие книги Excel (он сделает партию больше, чем это, если Вы захотите его к). Вы видите, какие люди говорят и загружают бесплатную демонстрационную версию, если Вы хотите дать ей попытку.

SpreasheetGear может также создать изображения из диаграмм и диапазонов ячеек, если необходимо генерировать изображения для отображения в веб-странице.

1
ответ дан 15 December 2019 в 01:12
поделиться

Вы посмотрели на библиотеку объектов Microsoft Word 9.0? Не могло бы быть возможно просто отобразить данные, как это было первоначально записано, однако, Вы МОГЛИ сделать что-то evul здесь, как насчет, печатая как временный PDF в памяти и отобразив это?

Это - то, как Вы отображаете PDF с C#

0
ответ дан 15 December 2019 в 01:12
поделиться

Все это - конкретные окна.

Если Вы хотите отобразить что-то на клиентской машине, не полагаясь ни на какую локальную установку затем, необходимо взять на себя общую ответственность за рендеринг любого:

  1. Предоставление своего рода не агрессивные библиотеки, которые работают в клиенте и знают, как представить его
  2. Используйте 'надлежащие' инструменты/библиотеки, чтобы представить его на сервере к в отображении памяти и отправить то изображение клиенту. Медленный, очень в вычислительном отношении дорогой на Вашем сервере и не предоставит 'документ как' интерфейс Вашим клиентам.

Суматра абсолютно свободна и с открытым исходным кодом. Это не потребовало бы никакой формы установки, таким образом включая его в Вашей установке приложения, поскольку двоичный файл в sub папке и затем выходящий из оболочки непосредственно к этому для отображения PDF будет хорошо работать (любой идентификационная сеть PDF, доступная, таким образом, это будет столь же просто как выполнение

SumatraPDF.exe {path-to-file}

Если это не сетевая доступная загрузка это в фоновом режиме к временному местоположению, и затем выполнитесь как выше.

Документы Office немного более хитры, так как они все требуют локальной установки. Вот (устаревший) Примечание к списку, что многие ссылки на загрузки затем укажут на Вас на очень последнюю версию, которая рекомендуется.

Альтернативный подход для этого должен использовать OpenOffice.org в, он - 'портативное' воплощение, которое позволит этому работать, не требуя установки (таким образом, можно будет отбросить его на месте точно так же, как подход Суматры), это однако имеет очень много дефектов в случае, потому что это все еще потребовало бы, чтобы Java был установлен, получающиеся файлы будут доступны для редактирования (если Вы не внесли изменения в версию OpenOffice, которая может быть сложной), и Вы не можете получить ужасно хороший дисплей.

Если у Вас есть какой-либо вид способности запустить произвольные программы на установке Вашего приложения, устанавливающего средства просмотра, вероятно, для лучшего, они совершенно свободны и распространяемы.

Если у Вас есть доступ к SharePoint, можно попробовать совершенно другой подход, который должен сделать все это с помощью веб-приложения. sharepoint плагины позволят размещать представления о документах непосредственно в браузере. Обратите внимание, что это в значительной степени требует, чтобы Internet Explorer был полностью применим все же.

0
ответ дан 15 December 2019 в 01:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: