采用midas
现在要实现的功能是:从客户端将格式为“.jpg”的图片传送到服务器端并存为“.pdf”格式的文件,客户端程序如下:
var
  ov : oleVariant;
  MyBuffer : Pointer;
  filstream : TFileStream;
begin
  filstream := TFileStream.Create(imagePath,fmOpenRead);
  try
    filstream.Position := 0;
    ov := VarArrayCreate([0,filstream.size - 1],varByte);
    MyBuffer := VarArrayLock(ov);
    filstream.Position := 0;
    filstream.ReadBuffer(MyBuffer^,filstream.Size);
    VarArrayUnlock(ov);
    dm.ConnectionBroker1.AppServer.uploadImage(ov,trim(imagefile),imagetype);
  finally
    filstream.Free;
  end;应用服务器端程序如下:
procedure TDocServer.uploadImage(imagestream: OleVariant;
  const imagefilename, imagetype: WideString);
  //这个过程把variant写到stream里面
  procedure Save_variant_into_stream(ov:OleVariant;stream:Tstream);
  var MyBuffer: Pointer;
  begin
      MyBuffer := VarArrayLock(ov);
      stream.Position:=0;
      stream.Write(mybuffer^,VarArrayHighBound(ov, 1));
      VarArrayUnlock(ov);
  end;
var f:Tfilestream;
begin
    f:=Tfilestream.Create(trim(mainform.edPhotorootfolder.Text)+'\'+imagetype+'\'+trim(imagefilename), fmCreate); 
    try
      Save_variant_into_stream(imagestream,f);
    finally
      f.free;
    end;
end;

解决方案 »

  1.   

    想法就是:stream-->variant-->stream在这过程中,向应用服务器传参数的时候,我把图片的后缀"xxxxxx.jpg"改为了"xxxxxx.pdf",最后,在指定文件夹下,找到了转存后的".pdf"文件,但是打不开,说是“文件被损坏”,我想肯定一点的是,直接改后缀是不行的,请教高手,应该怎么转呢?
    不胜感激~~~~
      

  2.   

    需要pdf库的支持,网上找找
    象你这样写法,把*.jpg直接改成*.pdf,还要我们编程吗?
      

  3.   

    <<navyfish我觉得,可能和这没关系吧?
      

  4.   

    <<kangji
    ^_^,我想也是~
      

  5.   

    pdf库有什么?这方面的还真没用过~
      

  6.   

    你到的是要怎么个转PDF?
    是要把jpg转换成ADOBE的那个Acrobat的PDF格式?