Как вставить изображение в PDF? - PullRequest
0 голосов
/ 08 февраля 2012

Я генерирую файл PDF из содержимого электронного письма, и это электронное письмо содержит изображение.Но я хотел добавить статическое изображение в этот PDF.Какой может быть способ добавления статического изображения в PDF?

Ответы [ 4 ]

1 голос
/ 08 февраля 2012

Это зависит от того, как вы создаете PDF.Обычно (при рисовании в CGPDFContext) вы используете обычные функции рисования Quartz для добавления изображения.

1 голос
/ 08 февраля 2012

Вы можете сделать так:

-(void) CreatePdf
{
   NSInteger currentY = HEIGHT; 

  NSString *logoFileName = @"logo.jpg";

  NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

  NSString *saveDirectory = [paths objectAtIndex:0];

  NSString *logoFilePath = [saveDirectory stringByAppendingPathComponent:logoFileName];

  currentY = [self getAbsoluteY:currentY :70];

  UIImage *logoImage = [UIImage imageWithContentsOfFile:logoFilePath];

  CGContextDrawImage(pdfContext, CGRectMake(paddingLeft, currentY, 100, 70), [logoImage CGImage]);

}

-(NSInteger)getAbsoluteY:(NSInteger)currY: (NSInteger)space 
{
   return (currY - space);
}
0 голосов
/ 04 апреля 2012

Я решил похожую проблему, используя PS и Word.Этот простой скрипт открывает Word и вставляет изображения в новый документ.Затем вы можете вручную сохранить документ в формате PDF или других форматах.Это также может быть автоматизировано, но я предпочитаю оставить Word открытым, чтобы проверить его и внести незначительные изменения перед сохранением.

Этот скрипт полезен для избавления от старых журналов.Просто отсканируйте страницы, которые вы хотите сохранить, в файлы изображений в одной папке, запустите скрипт, а затем сохраните документ в формате PDF для вашего Kindle.

$letterWidth = 612
$letterHeight = 792
$topMargin = 0
$bottomMargin = 0
$leftMargin = 0
$rightMargin = 0

function Main([string] $dir)
{
  $files = dir $dir
  $doc, $selection = OpenWordDoc

  foreach ($file in $files)
  {
    $par = $doc.Paragraphs.Add()
    $par.SpaceAfter = 0
    $par.Alignment = 1
    $pic = $par.Range.InlineShapes.AddPicture($file.FullName)
    ScaleImage $pic
  }
}

function ScaleImage($pic)
{
  $hScale = ($letterWidth - $leftMargin - $rightMargin) / $pic.Width
  $vScale = ($letterHeight - $topMargin - $bottomMargin) / $pic.Height
  $scale = [Math]::Min($hScale, $vScale) * 100
  $pic.ScaleHeight = $pic.ScaleWidth = $scale
}

function OpenWordDoc()
{
  $word = new-object -ComObject "word.application"
  $word.Visible = $True
  $doc = $word.documents.Add()
  $doc.PageSetup.TopMargin = $topMargin
  $doc.PageSetup.BottomMargin = $bottomMargin
  $doc.PageSetup.LeftMargin = $leftMargin
  $doc.PageSetup.RightMargin = $rightMargin
  $doc, $word.Selection
}

. Main $args[0]
0 голосов
/ 08 февраля 2012

я думаю, что это будет вам полезно http://www.tek -tips.com / viewthread.cfm? Qid = 1194867

...